CVE-2026-54293: Natural Language Toolkit (NLTK): URL-Encoded Path Traversal in nltk.data.load() Allows Arbitrary Local File Read
(updated )
nltk.data.load() in NLTK is vulnerable to path traversal via URL-encoded path separators and traversal segments when using the nltk: URL scheme. The unsafe-path regex check is performed before url2pathname() decodes the %xx sequences (a classic decode-after-check / TOCTOU-style flaw), allowing an attacker to bypass the protection documented in NLTK’s SECURITY.md and read arbitrary files from the filesystem. While literal traversal strings such as ../../../etc/passwd are correctly blocked, encoded variants such as %2fetc%2fpasswd, %2e%2e%2f…, and ..%2f..%2f slip past the regex and are subsequently decoded into a real filesystem path.
References
- access.redhat.com/errata/RHSA-2026:42644
- access.redhat.com/security/cve/CVE-2026-54293
- bugzilla.redhat.com/show_bug.cgi?id=2491486
- github.com/advisories/GHSA-p4gq-832x-fm9v
- github.com/nltk/nltk/pull/3575
- github.com/nltk/nltk/security/advisories/GHSA-p4gq-832x-fm9v
- github.com/pypa/advisory-database/tree/main/vulns/nltk/PYSEC-2026-2078.yaml
- nvd.nist.gov/vuln/detail/CVE-2026-54293
- security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-54293.json
Code Behaviors & Features
Detect and mitigate CVE-2026-54293 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Dependency Scanning using SBOM also detects vulnerabilities from proprietary advisories that this site does not include. Learn more about Dependency Scanning using SBOM →