{"id":"CVE-2026-54293","title":"NLTK (Natural Language Toolkit) is a suite of open source Python modules, data sets, and tutorials supporting research and development in Natural Language Processing","summary":"NLTK (Natural Language Toolkit) is a suite of open source Python modules, data sets, and tutorials supporting research and development in Natural Language Processing. Prior to 3.10.0-rc1, nltk.data.load() in NLTK is vulnerable to path tr…","severity":"high","cvss":7.5,"cvssVector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","cwe":["CWE-22"],"vendor":"nltk","product":"nltk","affected":["nltk < 3.10.0"],"patched":["nltk 3.10.0"],"published":"2026-06-22","updated":"2026-09-09","sourceUpdated":"2026-09-09T13:20:30.723","source":"NVD","sourceUrl":"https://nvd.nist.gov/vuln/detail/CVE-2026-54293","references":[{"url":"https://github.com/nltk/nltk/pull/3575","label":"security-advisories@github.com"},{"url":"https://github.com/nltk/nltk/security/advisories/GHSA-p4gq-832x-fm9v","label":"security-advisories@github.com"},{"url":"https://access.redhat.com/errata/RHSA-2026:42644","label":"0b0ca135-0b70-47e7-9f44-1890c2a1c46c"},{"url":"https://access.redhat.com/errata/RHSA-2026:60520","label":"0b0ca135-0b70-47e7-9f44-1890c2a1c46c"},{"url":"https://access.redhat.com/errata/RHSA-2026:65126","label":"0b0ca135-0b70-47e7-9f44-1890c2a1c46c"},{"url":"https://access.redhat.com/security/cve/CVE-2026-54293","label":"0b0ca135-0b70-47e7-9f44-1890c2a1c46c"},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2491486","label":"0b0ca135-0b70-47e7-9f44-1890c2a1c46c"},{"url":"https://github.com/nltk/nltk/security/advisories/GHSA-p4gq-832x-fm9v","label":"134c704f-9b21-4f2e-91b3-4a467353bcc0"},{"url":"https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-54293.json","label":"0b0ca135-0b70-47e7-9f44-1890c2a1c46c"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-54293"},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-54293"},{"url":"https://github.com/advisories/GHSA-p4gq-832x-fm9v"},{"url":"https://github.com/nltk/nltk"},{"url":"https://github.com/pypa/advisory-database/tree/main/vulns/nltk/PYSEC-2026-2078.yaml"}],"tags":["nvd","cve.org","exploit-available","csaf","vex","red-hat","ghsa","pip","osv"],"exploitAvailable":true,"ssvc":{"exploitation":"poc","automatable":"yes","technicalImpact":"partial","timestamp":"2026-06-22T21:18:34.399949Z"},"epss":0.00633,"epssPercentile":0.48626,"aliases":["GHSA-p4gq-832x-fm9v","PYSEC-2026-2078"],"ecosystem":"pip","ingestedAt":"2026-07-07T15:41:58.344Z","slug":"CVE-2026-54293","body":"## Overview\n\nNLTK (Natural Language Toolkit) is a suite of open source Python modules, data sets, and tutorials supporting research and development in Natural Language Processing. Prior to 3.10.0-rc1, 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. This vulnerability is fixed in 3.10.0-rc1.\n\n## Affected\n\n- `nltk < 3.10.0`\n\n## Remediation\n\nUpgrade past the affected range:\n\n- `nltk 3.10.0`\n\n## Package advisory (CVE-2026-54293)\n\nAffected packages:\n\n- `nltk <= 3.9.4`\n\nSource: https://github.com/advisories/GHSA-p4gq-832x-fm9v\n\n## Vendor advisories\n\n- **RHSA-2026:42644** · Red Hat · fixed in: Red Hat OpenShift AI 2.25 · released 2026-07-21 · [advisory](https://access.redhat.com/errata/RHSA-2026:42644)\n- **RHSA-2026:65126** · Red Hat · fixed in: Red Hat OpenShift AI 2.25 · released 2026-09-08 · [advisory](https://access.redhat.com/errata/RHSA-2026:65126)\n- **RHSA-2026:60520** · Red Hat · fixed in: Red Hat OpenShift AI 3.4 · released 2026-08-27 · [advisory](https://access.redhat.com/errata/RHSA-2026:60520)\n- **Red Hat VEX** · Important · affected: Exploit Intelligence, Red Hat Ansible Automation Platform 2, Red Hat OpenShift AI (RHOAI) · no fix planned: Red Hat Ansible Automation Platform 2, Exploit Intelligence, Red Hat OpenShift AI (RHOAI) · updated 2026-09-08 · [vex](https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-54293.json)","depth":"midnight","depthScore":53,"depthScoreParts":{"impact":41.3,"likelihood":0.1,"exploitation":12,"ransomware":0},"changes":[{"seq":201767,"id":"CVE-2026-54293","ts":1789399679995,"field":"exploit_available","old":"false","new":"true"},{"seq":200497,"id":"CVE-2026-54293","ts":1789397342595,"field":"exploit_available","old":"true","new":"false"},{"seq":198414,"id":"CVE-2026-54293","ts":1789391903069,"field":"exploit_available","old":"false","new":"true"},{"seq":196207,"id":"CVE-2026-54293","ts":1789383549430,"field":"exploit_available","old":"true","new":"false"},{"seq":195136,"id":"CVE-2026-54293","ts":1789380435269,"field":"exploit_available","old":"false","new":"true"},{"seq":193923,"id":"CVE-2026-54293","ts":1789378458053,"field":"exploit_available","old":"true","new":"false"},{"seq":192710,"id":"CVE-2026-54293","ts":1789376376116,"field":"exploit_available","old":"false","new":"true"},{"seq":191497,"id":"CVE-2026-54293","ts":1789373361821,"field":"exploit_available","old":"true","new":"false"},{"seq":190282,"id":"CVE-2026-54293","ts":1789369260975,"field":"exploit_available","old":"false","new":"true"},{"seq":189069,"id":"CVE-2026-54293","ts":1789368228518,"field":"exploit_available","old":"true","new":"false"},{"seq":187852,"id":"CVE-2026-54293","ts":1789365118608,"field":"exploit_available","old":"false","new":"true"},{"seq":186639,"id":"CVE-2026-54293","ts":1789363221893,"field":"exploit_available","old":"true","new":"false"},{"seq":185425,"id":"CVE-2026-54293","ts":1789361065805,"field":"exploit_available","old":"false","new":"true"},{"seq":184212,"id":"CVE-2026-54293","ts":1789358100452,"field":"exploit_available","old":"true","new":"false"},{"seq":182463,"id":"CVE-2026-54293","ts":1789354193621,"field":"exploit_available","old":"false","new":"true"},{"seq":181256,"id":"CVE-2026-54293","ts":1789353083862,"field":"exploit_available","old":"true","new":"false"},{"seq":180049,"id":"CVE-2026-54293","ts":1789350137285,"field":"exploit_available","old":"false","new":"true"},{"seq":178842,"id":"CVE-2026-54293","ts":1789348046854,"field":"exploit_available","old":"true","new":"false"},{"seq":177635,"id":"CVE-2026-54293","ts":1789346254575,"field":"exploit_available","old":"false","new":"true"},{"seq":176428,"id":"CVE-2026-54293","ts":1789342969715,"field":"exploit_available","old":"true","new":"false"},{"seq":174545,"id":"CVE-2026-54293","ts":1789334732577,"field":"exploit_available","old":"false","new":"true"},{"seq":173340,"id":"CVE-2026-54293","ts":1789333463808,"field":"exploit_available","old":"true","new":"false"},{"seq":172154,"id":"CVE-2026-54293","ts":1789330972693,"field":"exploit_available","old":"false","new":"true"},{"seq":170968,"id":"CVE-2026-54293","ts":1789328569469,"field":"exploit_available","old":"true","new":"false"},{"seq":169763,"id":"CVE-2026-54293","ts":1789327037326,"field":"exploit_available","old":"false","new":"true"},{"seq":168558,"id":"CVE-2026-54293","ts":1789323624408,"field":"exploit_available","old":"true","new":"false"},{"seq":167353,"id":"CVE-2026-54293","ts":1789319469224,"field":"exploit_available","old":"false","new":"true"},{"seq":166148,"id":"CVE-2026-54293","ts":1789318510438,"field":"exploit_available","old":"true","new":"false"},{"seq":164943,"id":"CVE-2026-54293","ts":1789315674158,"field":"exploit_available","old":"false","new":"true"},{"seq":163738,"id":"CVE-2026-54293","ts":1789313425371,"field":"exploit_available","old":"true","new":"false"},{"seq":162533,"id":"CVE-2026-54293","ts":1789311800021,"field":"exploit_available","old":"false","new":"true"},{"seq":161328,"id":"CVE-2026-54293","ts":1789308489061,"field":"exploit_available","old":"true","new":"false"},{"seq":160833,"id":"CVE-2026-54293","ts":1789304431077,"field":"exploit_available","old":"false","new":"true"},{"seq":160380,"id":"CVE-2026-54293","ts":1789303955878,"field":"exploit_available","old":"true","new":"false"},{"seq":159441,"id":"CVE-2026-54293","ts":1789300369561,"field":"exploit_available","old":"false","new":"true"},{"seq":158671,"id":"CVE-2026-54293","ts":1789299448545,"field":"exploit_available","old":"true","new":"false"},{"seq":157635,"id":"CVE-2026-54293","ts":1789296561012,"field":"exploit_available","old":"false","new":"true"},{"seq":156430,"id":"CVE-2026-54293","ts":1789294547273,"field":"exploit_available","old":"true","new":"false"},{"seq":155225,"id":"CVE-2026-54293","ts":1789292763237,"field":"exploit_available","old":"false","new":"true"},{"seq":154020,"id":"CVE-2026-54293","ts":1789289550115,"field":"exploit_available","old":"true","new":"false"},{"seq":152670,"id":"CVE-2026-54293","ts":1789281471748,"field":"exploit_available","old":"false","new":"true"},{"seq":152310,"id":"CVE-2026-54293","ts":1789281064711,"field":"exploit_available","old":"true","new":"false"},{"seq":151271,"id":"CVE-2026-54293","ts":1789277510498,"field":"exploit_available","old":"false","new":"true"},{"seq":150232,"id":"CVE-2026-54293","ts":1789276045746,"field":"exploit_available","old":"true","new":"false"},{"seq":149199,"id":"CVE-2026-54293","ts":1789273688846,"field":"exploit_available","old":"false","new":"true"},{"seq":148166,"id":"CVE-2026-54293","ts":1789271073821,"field":"exploit_available","old":"true","new":"false"},{"seq":146201,"id":"CVE-2026-54293","ts":1789269265734,"field":"exploit_available","old":"false","new":"true"},{"seq":142814,"id":"CVE-2026-54293","ts":1789261331154,"field":"exploit_available","old":"true","new":"false"},{"seq":141645,"id":"CVE-2026-54293","ts":1789258720727,"field":"exploit_available","old":"false","new":"true"},{"seq":140486,"id":"CVE-2026-54293","ts":1789256558494,"field":"exploit_available","old":"true","new":"false"}]}