CVE-2026-79676: NLTK before 3.10.3 Path Traversal via Symlink Bypass
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().
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
nltkto a version that resolves this vulnerability.Fixed in 3.10.3
Event History
Frequently Asked Questions
Which deployments are exposed?
Deployments using NLTK versions before 3.10.3 are exposed when an attacker can place or stage symlinked corpus files beneath a trusted NLTK data root. The vulnerable behavior occurs in corpus readers that reopen root-derived paths.
What does an attacker need to exploit this issue?
The attacker needs the ability to stage symlinked corpus files under a trusted data root. No authentication or user interaction is required once those files are available to the affected corpus reader.
What information could be exposed?
An attacker can use symlinks that point outside the trusted root to disclose outside-root file contents through normal corpus reader methods, including channels(), domains(), and synonyms().
How can I determine whether my environment is affected?
Check whether NLTK is earlier than 3.10.3 and whether untrusted parties can create or influence corpus files or symlinks under a trusted NLTK data root. Review uses of affected corpus reader methods that may process those files.