CVE-2026-79676
PoC nicheSymlink boundary bypass in NLTK corpus readers leaks files outside trusted roots
Several NLTK corpus readers (IPIPAN, Crubadan, and Lin) reopen corpus files derived from trusted roots using Python's built-in open() instead of nltk.pathsec.open(), so symlinks placed inside a trusted corpus root are followed to files outside that root even when pathsec.ENFORCE=True is enabled. An attacker who can stage files or symlinks in a trusted NLTK data directory — for example in shared or multi-tenant environments that process untrusted or attacker-influenced corpora — can have outside-root content parsed and returned through normal public methods such as channels(), domains(), langs(), crubadan_to_iso(), and synonyms(). This is a path-traversal and symlink-following flaw (CWE-22/CWE-59) that defeats the trusted-root boundary pathsec is meant to enforce, with high confidentiality impact but no integrity or availability impact. Published NLTK 3.9.4 and the current v3.10.0-rc2 source are both affected, and no patched release is available yet. No public proof-of-concept, CISA KEV listing, or in-the-wild exploitation is known; EPSS estimates about a 0.3% probability of exploitation within 30 days (CVSS 4.0: 8.2 High).
What to do: No patched NLTK release exists yet, so monitor the nltk/nltk repository for a fix covering the ipipan, crubadan, and lin readers. Until a fix ships, prevent symlinks inside trusted NLTK data roots (replace links with real files, or restrict write access to those directories), especially where pathsec.ENFORCE=True guards shared or untrusted corpora. Audit any deployment that relies on pathsec trusted-root boundaries, since parsed outside-root content can already be returned through normal reader APIs.
| NLTK project (nltk on PyPI) NLTK — corpus readers nltk.corpus.reader.ipipan, nltk.corpus.reader.crubadan, nltk.corpus.reader.lin | 3.9.4 and v3.10.0-rc2 (source) both affected; not yet patched, no fixed version available |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
NLTK versions before 3.10.3 contain a path traversal vulnerability in corpus readers that reopen root-derived paths using built-in open() instead of nltk.pathsec.open(), allowing symlinks to escape trusted roots. Attackers who stage symlinked corpus files under a trusted data root can disclose outside-root content through normal corpus reader methods like channels(), domains(), and synonyms().
- Vendors
- nltk
- Products
- nltk
- Ecosystems
- pip
- Weakness
- CWE-22
- Vector
- CVSS:4.0/AV:N/AC:H/AT:P/PR:N/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-p4rw-rvv2-7xwr (high)
In the news0 stories
No ingested article mentions this CVE yet.