High severity · published Aug 22, 2026
CVE-2026-71513
NLTK 3.10.0 through 3.10.2 Remote Code Execution via AllowlistUnpickler Dotted-Name Bypass
8.8
CVSS
1.1%
EPSS
No
On KEV
Description
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.
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Attack vector
Network
Complexity
Low
Privileges
None
User interaction
Required
Confidentiality
High
Integrity
High
Availability
High
Scope
Unchanged
Exploitation
Is it being used?
Exploit prediction (EPSS)1.1% · higher than 65% of CVEs
Exploited in the wildNo evidence yet
CISA KEVNot listed
Ransomware campaign useNot known
Affected products
Which versions
NL
nltk · nltk
3.10.0 before 3.10.3 · source: vendor, NVD
References
NVD
https://nvd.nist.gov/vuln/detail/CVE-2026-71513
CVE.org
https://www.cve.org/CVERecord?id=CVE-2026-71513
Product
https://github.com/nltk/nltk
Product
https://github.com/nltk/nltk/blob/v3.10.2/nltk/picklesec.py#L119-L124
Patch
https://github.com/nltk/nltk/commit/c3e37113742a1ebeeb4f2ca58941f320f98805ea
Third Party Advisory
https://www.vulncheck.com/advisories/nltk-through-remote-code-execution-via-allowlistunpickler-dotted-name-bypass
More from nltk
10.0
CVE-2026-0848
Arbitrary Code Execution in NLTK StanfordSegmenter via Untrusted JAR Loading
9.8
CVE-2026-79675
NLTK before 3.10.3 JVM Argument Injection via Per-Call Options
9.8
CVE-2026-79657
NLTK before 3.10.3 Remote Code Execution via Unsafe Pickle Deserialization
9.6
CVE-2026-78683
NLTK before 3.10.0 Remote Code Execution via Unsafe Pickle Deserialization
8.8
CVE-2025-14009
Zip Slip Vulnerability in nltk/nltk Leading to Remote Code Execution
