ZeroHour

CVE-2026-79675

PoC large

Argument injection in NLTK java() options allows JVM flag injection and code execution

CVSS 4.0
9.3 critical
EPSS
<1%p36
Published
()
Modified
AI analysis

NLTK before 3.10.3 fails to validate JVM options passed through the per-call options parameter of its java() interface, an argument-injection flaw (CWE-88). An attacker who can influence the options string supplied to the Stanford wrapper classes can inject dangerous JVM flags such as -agentpath, -javaagent, or @argfile, causing the launched Java Virtual Machine to load attacker-controlled code or read attacker-supplied argument files. This yields arbitrary code execution with the privileges of the process running NLTK, with high impact to confidentiality, integrity, and availability and no privileges or user interaction required (CVSS 4.0 score 9.3). Any Python application running an affected NLTK version that invokes the java()-backed Stanford wrappers with attacker-influenced options — for example, NLP services that pass user-controlled settings into these wrappers — is affected. No in-the-wild exploitation is known; a public security advisory/PoC exists, the EPSS score is a modest 0.4% (36th percentile), and the issue is not in CISA KEV.

What to do: Upgrade to NLTK 3.10.3 or later, which validates JVM options before passing them to the JVM. As an interim measure, never pass untrusted input to the options parameter of nltk.java() or the Stanford wrapper classes; whitelist permitted JVM flags and reject flags such as -agentpath, -javaagent, and @argfile references. Audit whether any network-facing services feed user-controlled values into these wrappers.

Affected
nltkAll versions before 3.10.3
Estimated exposure
large≈100,000+ Python environments likely have NLTK < 3.10.3 installed (based on ~35M monthly PyPI downloads), but the directly exploitable subset is far smaller —… — NLTK is among the most-downloaded Python NLP libraries (~35M monthly PyPI downloads, implying hundreds of thousands of installed environments), but exploitation requires the legacy java()-backed Stanford wrapper classes to be in use with…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

NLTK before 3.10.3 fails to validate JVM options passed through the per-call options parameter in the java() function, allowing attackers to inject dangerous JVM flags. Attackers can supply malicious options like -agentpath, -javaagent, or @argfile to Stanford wrapper classes to achieve arbitrary code execution.

Vendors
nltk
Products
nltk
Weakness
CWE-88
Vector
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

In the news

No ingested article mentions this CVE yet.