NLTK AllowlistUnpickler dotted-name validation bypass allows remote code execution
PYSEC-2026-3867 · CVE-2026-71513 · GHSA-5gh2-94qg-qppq
Published · Modified
AI SAST
Find this class of vulnerability in your own code
Corgea's AI-native static analysis detects vulnerabilities like this one across your repositories, ranks them by exploitability, and returns review-ready fixes.
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.
References
- ADVISORY https://nvd.nist.gov/vuln/detail/CVE-2026-71513
- WEB https://github.com/nltk/nltk/commit/c3e37113742a1ebeeb4f2ca58941f320f98805ea
- PACKAGE https://github.com/nltk/nltk
- WEB https://github.com/nltk/nltk/blob/v3.10.2/nltk/picklesec.py#L119-L124
- WEB https://www.vulncheck.com/advisories/nltk-through-remote-code-execution-via-allowlistunpickler-dotted-name-bypass
- PACKAGE https://pypi.org/project/nltk
- ADVISORY https://github.com/advisories/GHSA-5gh2-94qg-qppq
Ready to move
Start Securing
Free, no credit card | First findings in minutes