NLTKGHSA-5gh2-94qg-qppq
NLTK AllowlistUnpickler dotted-name validation bypass allows remote code execution
High8.8CVE-2026-71513 · Published Aug 22, 2026 · updated Sep 10, 2026
NLTK before 3.10.3 contains a remote code execution vulnerability in AllowlistUnpickler that validates only the pickle module string and not the global name, allowing attackers to resolve dotted names by attribute traversal to callables outside the allowlisted namespace. Attackers can craft untrusted transition-parser models that execute arbitrary commands when TransitionParser.parse loads the model through allowlisted_pickle_load.
Affected versions
| Package | Affected | Fixed in |
|---|---|---|
| nltk PyPI | >= 3.10.0, < 3.10.3 | 3.10.3 |
Details and references
- CVSS 3.1
- CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
- Severity from
- GitHub (reviewed advisory)
- Weakness
- CWE-502
- Also known as
- CVE-2026-71513, PYSEC-2026-3867
More NLTK advisories
All NLTK| Date | Advisory | Severity | Fixed in |
|---|---|---|---|
| Sep 2 | NLTK: uncontrolled recursion | Medium5.3 | 3.10.3 |
| Sep 1 | NLTK: argument injection | Critical9.8 | 3.10.3 |
| Sep 1 | NLTK: Uncontrolled search path when invoking the Graphviz 'dot' binary | High7.8 | 3.10.3 |
| Aug 22 | NLTK CrubadanCorpusReader path traversal allows arbitrary file disclosure | Low2.5 | 3.10.3 |
| Aug 21 | NLTK TweetTokenizer vulnerable to denial of service through catastrophic regex backtracking | High7.5 | 3.10.1 |
| Aug 13 | nltk: Arbitrary File Read via Path Traversal in nltk.data.load() through Percent-Encoded Sequences | High7.5 | 3.10.0 |