Bug 2521317 (CVE-2026-71513)

Summary: CVE-2026-71513 nltk: NLTK: Remote Code Execution via AllowlistUnpickler dotted-name bypass
Product: [Other] Security Response Reporter: OSIDB Bzimport <bzimport>
Component: vulnerabilityAssignee: Product Security DevOps Team <prodsec-dev>
Status: NEW --- QA Contact:
Severity: high Docs Contact:
Priority: high    
Version: unspecifiedCC: anpicker, bparees, dschmidt, ebourniv, hasun, jfula, jlanda, jowilson, kshier, nyancey, ometelka, ptisnovs, sbunciak, simaishi, stcannon, syedriko, teagle, xdharmai, yguenane
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: ---
Doc Text:
A flaw was found in NLTK. A remote attacker can achieve remote code execution by crafting untrusted transition-parser models. This vulnerability exists in the `AllowlistUnpickler`, which incorrectly validates only the pickle module string and not the global name. This allows attackers to bypass the allowlist by resolving dotted names through attribute traversal, leading to the execution of arbitrary commands when `TransitionParser.parse` loads a malicious model.
Story Points: ---
Clone Of: Environment:
Last Closed: Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description OSIDB Bzimport 2026-08-22 13:51:58 UTC
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.