CVE-2026-70626 json
NLTK before 3.9.4 Symlink Escape via CorpusReader
published 2026-08-22 2 mo ago modified 2026-10-14 26 d ago also GHSA-r6gq-whwq-mvg9 , PYSEC-2026-3732 , EUVD-2026-64314
- cvss
- 6.2
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.2%
- EPSS 0.2% chance of exploitation in 30 days, percentile 9%
- public exploits
- 0
- none known
Summary
NLTK versions before 3.9.4 contain a symlink escape vulnerability in CorpusReader.open() that allows local attackers to read arbitrary files outside the corpus root. The vulnerability exists because path validation is lexical and does not account for symlink resolution, enabling attackers to place symlinks inside the corpus root to access files outside the intended boundary.
Patch / fix
- pypi nltk 3.9.4
- nltk nltk 3.9.4
- nltk Debian 14 3.10.0-1
debian advisories DEBIAN-CVE-2026-70626
- github.com/nltk/nltk@1b0e519 commit
- github.com/nltk/nltk#3522 pull request
- github.com/nltk/nltk/releases/tag/3.9.4 release
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2026-70626 updated cvss 6.2
nltk: NLTK: Information disclosure via symlink escape in CorpusReader.open()
-
Red Hat Exploit Intelligence exploit-intelligence-tech-preview/vulnerability-analysis-rhel9 Red Hat Lightspeed Core lightspeed-core/rag-tool-cpu-rhel9, lightspeed-core/lightspeed-stack-rhel9, lightspeed-core/rag-tool-cuda-12.9-rhel9 Red Hat OpenShift Lightspeed openshift-lightspeed/lightspeed-ocp-rag-rhel9, openshift-lightspeed/lightspeed-service-api-rhel9, openshift-lightspeed-tech-preview/lightspeed-rag-tool-rhel9 Red Hat Ansible Automation Platform 2 ansible-automation-platform-25/lightspeed-chatbot-rhel8 Red Hat OpenShift AI (RHOAI) rhoai/odh-ogx-core-rhel9, rhoai/odh-ta-lmes-job-rhel9, rhoai/odh-llama-stack-core-rhel9, rhoai/odh-trustyai-garak-lls-provider-dsp-rhel9, rhoai/odh-trustyai-nemo-guardrails-server-rhel9, rhoai/odh-pipeline-runtime-pytorch-llmcompressor-cuda-py312-rhel9, +1 morenot affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
CISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- no
- Technical impact
- partial
- Assessed
- 2 mo ago
Exploit prediction
0.20% chance of exploitation in the next 30 days, higher than 9% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- github.com https://github.com/nltk/nltk/security/advisories/GHSA-r6gq-whwq-mvg9 referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 4.0 | 8.6 | CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N |
| CNA | 3.1 | 6.2 | CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N |
| CNA | 4.0 | 8.6 | CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
| GitHub | 3.1 | 6.2 | CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | nltk | <3.9.4 |
3.9.4 |
Affected products
- nltk nltk
Classification
- Weakness
-
- CWE-59 Improper Link Resolution Before File Access
References
-
github.com
/nltk/nltk/pull/3522
web
-
github.com
/nltk/nltk/commit/1b0e519e2324bc1a273d56edee63e44d0ad85b48
web
-
github.com
/nltk/nltk/security/advisories/GHSA-r6gq-whwq-mvg9
vendor-advisory, exploit, web, evidence
-
vulncheck.com
/advisories/nltk-before-symlink-escape-via-corpusreader
third-party-advisory, web, vendor-advisory, advisory
-
nvd.nist.gov
/vuln/detail/CVE-2026-70626
advisory
-
github.com
/nltk/nltk
package
-
github.com
/nltk/nltk/releases/tag/3.9.4
web
-
github.com
/pypa/advisory-database/tree/main/vulns/nltk/PYSEC-2026-3732.yaml
web
Sources
- CVE List CVE-2026-70626
- GitHub Advisory GHSA-r6gq-whwq-mvg9
- NVD CVE-2026-70626
- OSV PYSEC-2026-3732
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.