ZeroHour

CVE-2026-65915

PoC mass

Arbitrary File Read in NLTK via Inert Path Validation in nltk.data.load()

CVSS 4.0
7.1 high
EPSS
<1%p29
Published
()
Modified
AI analysis

NLTK versions before 3.10.0 contain a logic bug in FileSystemPathPointer.open() in which the sandbox validation check compares a normalized path against itself, so the check always passes and the security control is permanently inert (CWE-284, improper access control). The flaw is triggered when an application passes attacker-controlled input, such as a crafted file:// URL, to nltk.data.load(), allowing the loader to be pointed at any location on the host. An attacker gains arbitrary file read with the privileges of the process, enough to steal credentials and configuration files; the CVSS 4.0 vector confirms high confidentiality impact with no integrity or availability impact. Any Python (pip) project embedding NLTK prior to 3.10.0 is affected, but exploitation requires that untrusted paths or URLs actually reach the data-loading API. No confirmed in-the-wild exploitation is reported: a public advisory/PoC exists (GHSA-72r2-7mfr-5xr9), the CVE is not in CISA KEV, and EPSS estimates only about a 0.4% chance of exploitation in the next 30 days.

What to do: Upgrade to NLTK 3.10.0 or later (pip install -U nltk). Audit applications and dependencies for calls to nltk.data.load() and related data APIs that accept untrusted input, and until patched, reject or allowlist file:// URLs and paths rather than passing user-supplied values through. Given the low EPSS score and absence from CISA KEV, there is no evidence of mass exploitation, but prioritize internet-facing services that load user-supplied data paths.

Affected
nltk (Natural Language Toolkit)all versions before 3.10.0 (fixed in 3.10.0)
Estimated exposure
mass>1,000,000 Python environments (NLTK sees tens of millions of PyPI downloads per month) — NLTK is a de facto standard NLP library in the pip ecosystem with download volumes in the tens of millions per month, so vulnerable installs likely number in the millions, although the directly exploitable subset is much smaller because it…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

NLTK versions before 3.10.0 contain a logic bug in FileSystemPathPointer.open() where the sandbox validation check compares a normalized path against itself, making the security check permanently inert. Attackers can pass file:// URLs to nltk.data.load() to read arbitrary files accessible to the process user, including credentials and configuration files.

Vendors
nltk
Products
nltk
Ecosystems
pip
Weakness
CWE-284
Vector
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
GHSA
GHSA-72r2-7mfr-5xr9 (medium)

In the news

No ingested article mentions this CVE yet.