What’s Vulnerable › Vulnerabilities
CVE-2025-71408: NLTK < 3.9.3 Eval Injection via collocations.py Command-Line Arguments
- Severity: high (CVSS 7.8 v3.1)
- Exploited in the wild: not listed in CISA KEV
- EPSS: 0.3% probability of exploitation in the next 30 days
- Public exploit or detection template: yes
- Published: 2026-07-24 · updated 2026-10-08
- Weakness: CWE-95
Description
NLTK (Natural Language Toolkit) before version 3.9.3 contains an eval injection vulnerability in the nltk.collocations module that allows an attacker who controls command-line arguments to execute arbitrary Python code. When collocations.py is invoked directly, the __main__ block passes command-line arguments directly to eval() as suffixes of BigramAssocMeasures without allowlist validation or sanitization, enabling an attacker to supply a Python expression that escapes the intended attribute lookup and executes arbitrary code including OS commands via the os module.
Affected products
- nltk: before 3.9.3 — fixed in 3.9.3
How to fix
Upgrade to a fixed version: nltk 3.9.3. Check the vendor advisory for mitigations.
References
- https://aydinnyunus.github.io/2026/06/07/command-injection-nltk-collocations-eval/
- https://github.com/nltk/nltk/commit/66f14096d952ec8f04934f515e027534bd4eb0ac
- https://github.com/nltk/nltk/pull/3465
- https://github.com/nltk/nltk/releases/tag/3.9.3
- https://www.vulncheck.com/advisories/nltk-eval-injection-via-collocations-py-command-line-arguments
Get alerted when CVE-2025-71408 or the next vulnerability affects your stack