🔍 CVE-2026-54293

7.5
CVSS Score
HIGH
2026-06-22
2026-09-09 13:20
✅ 완료

🇰🇷 한글 설명

NLTK의 nltk.data.load() 함수에서 nltk: URL 스킴을 사용할 때 경로 탐색(Path Traversal) 취약점이 발견되었습니다. URL 인코딩된 경로 구분자와 탐색 세그먼트가 보안 검사를 우회하여 공격자가 파일 시스템의 임의 파일을 읽을 수 있습니다. 이 문제는 검사 후 디코딩이 이루어지는 로직 결함으로 인해 발생합니다.

💡 쉬운 설명

특수하게 암호화된 주소를 입력하면 보안 검사를 통과하여 컴퓨터 내부의 중요한 파일을 몰래 읽어갈 수 있는 문제입니다. 마치 검문소에서 암호로 적힌 통행증을 검사한 뒤, 나중에 암호를 풀어서 금지된 구역으로 들어가는 것과 같습니다.

🇺🇸 원문 (English)

NLTK (Natural Language Toolkit) is a suite of open source Python modules, data sets, and tutorials supporting research and development in Natural Language Processing. Prior to 3.10.0-rc1, nltk.data.load() in NLTK is vulnerable to path traversal via URL-encoded path separators and traversal segments when using the nltk: URL scheme. The unsafe-path regex check is performed before url2pathname() decodes the %xx sequences (a classic decode-after-check / TOCTOU-style flaw), allowing an attacker to bypass the protection documented in NLTK's SECURITY.md and read arbitrary files from the filesystem. While literal traversal strings such as ../../../etc/passwd are correctly blocked, encoded variants such as %2fetc%2fpasswd, %2e%2e%2f..., and ..%2f..%2f slip past the regex and are subsequently decoded into a real filesystem path. This vulnerability is fixed in 3.10.0-rc1.

📍 영향받는 시스템

NLTK 버전 3.10.0-rc1 미만 모든 버전

⚔️ 공격 벡터

URL 인코딩된 경로(예: %2e%2e%2f)를 포함한 nltk: URL 스킴을 사용하여 nltk.data.load() 호출

🛡️ 대응 방법

NLTK를 3.10.0-rc1 이상의 최신 버전으로 업데이트하십시오.

🔧 검증 코드

출력된 버전 번호가 3.10.0-rc1보다 낮은지 확인하십시오.

Shell / Script
python3 -c 'import nltk; print(nltk.__version__)'

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N

💻 영향받는 소프트웨어

Python