ZeroHour

CVE-2026-79676

PoC niche

Symlink boundary bypass in NLTK corpus readers leaks files outside trusted roots

CVSS 4.0
8.2 high
EPSS
<1%p23
Published
()
Modified
AI analysis

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.

Affected
NLTK project (nltk on PyPI) NLTK — corpus readers nltk.corpus.reader.ipipan, nltk.corpus.reader.crubadan, nltk.corpus.reader.lin3.9.4 and v3.10.0-rc2 (source) both affected; not yet patched, no fixed version available
Estimated exposure
nichelikely hundreds to at most a few thousand environments (a small slice of NLTK's multi-million-install pip user base) — NLTK has millions of pip installs, but this flaw only matters where the newly introduced pathsec.ENFORCE=True mode is enabled with an allowlisted root AND an attacker can write symlinks into that trusted corpus directory — a rarely…

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.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 news

No ingested article mentions this CVE yet.