Medium · published August 25, 2026
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().
| Product | Versions | Fixed in |
|---|---|---|
| nltk/nltk | < 3.10.3 | 3.10.3 |