CVE-2025-71408 NLTK < 3.9.3 Eval Injection via collocations.py Command-Line Arguments
Attackers can execute arbitrary Python code by controlling command-line arguments passed to the NLTK collocations module.
- Exploited in the wild
- Not known
- Login needed
- Any signed-in user
- Attackable
- Local or same network only
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2025-71408?
CVE-2025-71408 is a high-severity code injection vulnerability in ntlk, published on 24 Jul 2026. It can only be exploited from the same machine or local network, with no action from the victim.
Official 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.
Weakness: CWE-95
Which versions are affected by CVE-2025-71408?
3 open source packages ship an affected version, including nltk. It affects 1 product.
| Package | Affected | Fixed in |
|---|---|---|
nltk PyPI | All versions | 3.9.3 |
nltk PyPI | All versions | 3.9.3 |
nltk PyPI | All versions | 3.9.3 |
Products include Nltk Nltk.
How do I fix CVE-2025-71408?
Upgrade nltk to 3.9.3 or later.
Upgrade, and never evaluate templates, expressions or code built from user input. More about Code injection.
Is CVE-2025-71408 being exploited?
It is not confirmed as exploited in the wild, but public exploit code for CVE-2025-71408 exists.
Other vulnerabilities in ntlk
- CVE-2026-0848 Arbitrary Code Execution in NLTK StanfordSegmenter via Untrusted JAR Loading
- CVE-2025-14009 Zip Slip Vulnerability in nltk/nltk Leading to Remote Code Execution
- CVE-2026-78683 NLTK before 3.10.0 Remote Code Execution via Unsafe Pickle Deserialization
- CVE-2026-79657 NLTK before 3.10.3 Remote Code Execution via Unsafe Pickle Deserialization
- CVE-2026-79675 NLTK before 3.10.3 JVM Argument Injection via Per-Call Options
Sources
Also known as DEBIAN-CVE-2025-71408, ECHO-42f0-e2fb-b0d3, GHSA-848c-c2cx-j7qx, PYSEC-2026-3657, UBUNTU-CVE-2025-71408.