CVE-2026-12243: nltk: Arbitrary File Read via Path Traversal in nltk.data.load() through Percent-Encoded Sequences
nltk.data.load() and nltk.data.find() resolve user-supplied resource names to filesystem paths using url2pathname(), which decodes percent-encoded sequences (e.g. %2e%2e to ..). Path safety checks are performed on the raw, still-encoded string before decoding occurs. An attacker supplying %2e%2e instead of .. bypasses all path validation and reads arbitrary files outside the NLTK data directory.
References
- github.com/advisories/GHSA-m42h-3232-vpv3
- github.com/nltk/nltk/commit/aec4fce1b84ad725b8975f7365b23a4f626572a9
- github.com/nltk/nltk/issues/3504
- github.com/nltk/nltk/pull/3522
- github.com/nltk/nltk/security/advisories/GHSA-m42h-3232-vpv3
- github.com/pypa/advisory-database/tree/main/vulns/nltk/PYSEC-2026-597.yaml
- huntr.com/bounties/39aa9354-54ca-4e77-96da-580eb1fe6ed1
- nvd.nist.gov/vuln/detail/CVE-2026-12243
- securityinfinity.com/research/path-traversal-in-nltks-nltk-data-load-via-percent-encoded-sequences
Code Behaviors & Features
Detect and mitigate CVE-2026-12243 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →