DEV Community

CVE Reports
CVE Reports

Posted on Originally published at cvereports.com

CVE-2026-79675: CVE-2026-79675: JVM Argument Injection in Natural Language Toolkit (NLTK) Stanford Wrappers

CVE-2026-79675: JVM Argument Injection in Natural Language Toolkit (NLTK) Stanford Wrappers

Vulnerability ID: CVE-2026-79675
CVSS Score: 9.8
Published: 2026-09-01

CVE-2026-79675 is a critical command injection vulnerability in NLTK versions prior to 3.10.3 that permits remote attackers to execute arbitrary code on the hosting system. This vulnerability stems from an incomplete mitigation of a previous vulnerability, CVE-2026-12841. While NLTK verified global JVM options configured through the library's setup routines, it failed to perform equivalent safety checks on options provided during per-call invocations of Stanford NLP Java wrappers. Attackers controlling these parameters can pass dangerous Java configuration options to the system shell, bypassing security boundaries to spawn interactive processes or load untrusted Java archives.

TL;DR

An input validation bypass in NLTK's Stanford Java interface allows remote attackers to inject arbitrary JVM command-line options, such as -XX:OnError, to execute system commands and achieve unauthenticated remote code execution.


⚠️ Exploit Status: POC

Technical Details

  • CWE ID: CWE-88: Improper Neutralization of Argument Delimiters in a Command ('Argument Injection')
  • Attack Vector: Network
  • CVSS v3.1 Score: 9.8 (Critical)
  • EPSS Score: 0.00403 (Percentile: 33.49%)
  • Exploit Status: Proof-of-Concept
  • CISA KEV Status: No

Affected Systems

  • NLTK (Natural Language Toolkit) versions prior to 3.10.3
  • NLTK (Natural Language Toolkit): < 3.10.3 (Fixed in: 3.10.3)

Code Analysis

Commit: 8fa9650

Fix JVM argument injection (CVE-2026-12841, CWE-88) in nltk/internals.py

Mitigation Strategies

  • Upgrade NLTK to version 3.10.3 or higher.
  • Sanitize application parameters to prevent untrusted inputs from reaching the options configuration in NLTK wrappers.
  • Run the application process with reduced OS-level privileges to limit the impact of command execution.

Remediation Steps:

  1. Execute the update utility: pip install --upgrade nltk>=3.10.3
  2. Audit existing codebase for usage of StanfordParser, StanfordTokenizer, StanfordPOSTagger, or StanfordSegmenter.
  3. Verify that no client-controlled parameters map directly or indirectly to the java_options argument of these wrapper objects.
  4. Ensure that any usage of the new trusted_raw_options parameter is strictly configured with static, developer-defined strings.

References


Read the full report for CVE-2026-79675 on our website for more details including interactive diagrams and full exploit analysis.

Top comments (0)