🇰🇷 한글 설명
Nautobot 1.x 및 2.0.x 버전(1.6.7 및 2.0.6 미만)에서 특정 파일 다운로드 URL에 인증 절차가 누락된 취약점이 발견되었습니다. 공격자가 파일 이름을 알고 있다면 인증 없이도 Job 실행 중 생성된 임시 파일에 접근할 수 있습니다.
💡 쉬운 설명
로그인하지 않은 외부인도 파일의 이름만 알면 서버에 저장된 중요한 파일을 몰래 다운로드할 수 있는 보안 구멍이 있습니다. 파일 이름을 무작위로 추측하거나 알아내는 경우 데이터 유출로 이어질 수 있습니다.
🇺🇸 원문 (English)
Nautobot is a Network Source of Truth and Network Automation Platform built as a web application atop the Django Python framework with a PostgreSQL or MySQL database. In Nautobot 1.x and 2.0.x prior to 1.6.7 and 2.0.6, the URLs `/files/get/?name=...` and `/files/download/?name=...` are used to provide admin access to files that have been uploaded as part of a run request for a Job that has FileVar inputs. Under normal operation these files are ephemeral and are deleted once the Job in question runs.
In the default implementation used in Nautobot, as provided by `django-db-file-storage`, these URLs do not by default require any user authentication to access; they should instead be restricted to only users who have permissions to view Nautobot's `FileProxy` model instances.
Note that no URL mechanism is provided for listing or traversal of the available file `name` values, so in practice an unauthenticated user would have to guess names to discover arbitrary files for download, but if a user knows the file name/path value, they can access it without authenticating, so we are considering this a vulnerability.
Fixes are included in Nautobot 1.6.7 and Nautobot 2.0.6. No known workarounds are available other than applying the patches included in those versions.
📍 영향받는 시스템
Nautobot 1.x (1.6.7 미만) 및 2.0.x (2.0.6 미만)
⚔️ 공격 벡터
인증되지 않은 사용자가 파일 이름을 추측하거나 알아내어 특정 URL(/files/get/ 또는 /files/download/)로 직접 접근
🛡️ 대응 방법
Nautobot을 1.6.7 또는 2.0.6 이상의 최신 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 버전이 1.6.7 또는 2.0.6보다 낮은지 확인하여 취약 여부를 판단합니다.
python3 -c 'import nautobot; print(nautobot.__version__)' 2>/dev/null || echo 'Nautobot not installed'