NLTK downloader allows cross-package resource and model poisoning
Medium5.3CVE-2026-12261 · Published Aug 7, 2026 · updated Oct 2, 2026
A vulnerability in `nltk.downloader` in nltk/nltk versions <= 3.9.4 allows for cross-package resource and model poisoning. The downloader extracts package archives into shared namespaces such as `corpora/` and `taggers/` instead of package-isolated roots, and validates package integrity only after the archive has been written and extracted. This design flaw enables one package to overwrite another package's trusted resources within the same namespace, making the changes immediately active through ordinary NLTK APIs. This issue persists across fresh interpreter restarts and can affect downstream workflows, including machine learning pipelines and reproducibility-sensitive environments.
Affected versions
| Package | Affected | Fixed in |
|---|---|---|
| nltk PyPI | < 3.10.0 | 3.10.0 |
Details and references
- CVSS 3.0
- CVSS:3.0/AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:N
- Severity from
- GitHub (reviewed advisory)
- Weakness
- CWE-284
- Also known as
- CVE-2026-12261, PYSEC-2026-3954
- nvd.nist.gov/vuln/detail/CVE-2026-12261
- github.com/nltk/nltk/pull/3625
- github.com/nltk/nltk/commit/7a5740af89feeb739193db766e11e85dfe78339c
- github.com/nltk/nltk
- github.com/nltk/nltk/releases/tag/v3.10.0
- github.com/pypa/advisory-database/tree/main/vulns/nltk/PYSEC-2026-3954.yaml
- huntr.com/bounties/8b8c381e-08a8-4e4f-bb46-a320c96a364f
More NLTK advisories
All NLTK| Date | Advisory | Severity | Fixed in |
|---|---|---|---|
| Aug 13 | nltk: Arbitrary File Read via Path Traversal in nltk.data.load() through Percent-Encoded Sequences | High7.5 | 3.10.0 |
| Aug 10 | NLTK network URL validation permits SSRF to RFC 6598 shared-address-space hosts | Low3.7 | 3.10.0 |
| Aug 9 | NLTK: server-side request forgery | Low3.7 | No fix yet |
| Aug 7 | A vulnerability in `nltk.downloader` in nltk/nltk versions <= 3.9.4 | Medium6.5 | 3.10.0 |
| Jul 31 | NLTK: server-side request forgery | High8.6 | 3.10.0 |
| Jul 31 | Natural Language Toolkit (NLTK): ReDoS in NLTK ReviewsCorpusReader FEATURES regex | High7.5 | 3.10.0 |