CVE-2026-78680
Linux Debian vulnerability analysis and mitigation

Overview

CVE-2026-78680 is an untrusted search path vulnerability in the Natural Language Toolkit (NLTK) that allows local attackers to execute arbitrary code by placing a malicious dot binary in the current working directory or a relative PATH entry. It affects all NLTK versions up to and including 3.10.2; version 3.10.3 contains the fix. The vulnerability was published on August 25, 2026, and assigned a CVSS v3.1 score of 7.8 (High) and a CVSS v4.0 score of 8.5 (High) (GitHub Advisory, NLTK Advisory).

Technical details

The root cause is an untrusted search path (CWE-426) and uncontrolled search path element (CWE-427) in two NLTK code sites. In nltk.parse.dependencygraph.dot2img, the code called find_binary("dot") to obtain a validated absolute path but then discarded that result and invoked the bare name ["dot", ...], rendering the validation ineffective. In nltk.translate.api.AlignedSent._repr_svg_, the Graphviz dot binary was invoked by bare name with no validation whatsoever during IPython SVG rendering. On Windows, bare-name resolution includes the current working directory (CWD) before PATH entries; on Unix-like systems, a relative entry such as . in PATH achieves the same effect. An attacker with write access to the CWD or a writable relative PATH directory can plant a malicious executable named dot that will be executed in place of the legitimate Graphviz tool (NLTK Advisory, GitHub Advisory).

Impact

Successful exploitation allows a local attacker with low privileges to execute arbitrary code with the full privileges of the NLTK process, resulting in high confidentiality, integrity, and availability impact on the affected system. An attacker could read sensitive data processed by NLTK, modify files, or disrupt service. While the vulnerability is local in scope and does not directly affect subsequent systems, code execution under the NLTK process context could serve as a stepping stone for privilege escalation or lateral movement depending on the deployment environment (GitHub Advisory, NLTK Advisory).

Exploitability

No public proof-of-concept exploit code is known to exist, and there is no evidence of in-the-wild exploitation at the time of disclosure. The EPSS score is 0.0, reflecting a currently low probability of exploitation in the near term. The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. Exploitation requires local access and the ability to write a malicious binary to the CWD or a relative PATH directory, which limits the attack surface compared to remote vulnerabilities (NLTK Advisory, GitHub Advisory).

Exploitation steps

  1. Reconnaissance: Identify a target system running NLTK version 3.10.2 or earlier that uses dependencygraph.dot2img or AlignedSent._repr_svg_ functionality (e.g., a Jupyter notebook environment or NLP pipeline).
  2. Gain write access: Obtain write access to the current working directory from which the NLTK process is launched, or to a directory listed as a relative entry (e.g., .) in the PATH environment variable.
  3. Plant malicious binary: Create a malicious executable named dot (or dot.exe on Windows) in the target directory. This binary can contain any payload — for example, a reverse shell, credential harvester, or file exfiltration script.
  4. Trigger vulnerable code path: Cause the NLTK process to invoke dependencygraph.dot2img (e.g., by rendering a dependency graph) or AlignedSent._repr_svg_ (e.g., by displaying an aligned sentence in a Jupyter notebook). On Windows, the CWD is searched before PATH; on Unix, a . PATH entry causes the CWD binary to be resolved.
  5. Achieve code execution: The malicious dot binary is executed with the privileges of the NLTK process instead of the legitimate Graphviz tool, completing arbitrary code execution (NLTK Advisory).

Indicators of compromise

  • File System: Presence of an unexpected executable named dot (or dot.exe on Windows) in the current working directory of the NLTK process or in directories listed as relative entries in PATH; file timestamps inconsistent with legitimate Graphviz installation.
  • Process: Unusual child processes spawned by the Python/NLTK process that are not the legitimate Graphviz dot binary (e.g., shells, network utilities, or unknown executables); the spawned process path resolving to the CWD rather than a system binary directory (e.g., /usr/bin/dot or C:\Program Files\Graphviz\bin\dot.exe).
  • Logs: Python process logs or system audit logs showing execution of a dot binary from an unexpected path (CWD or relative PATH directory) rather than the absolute Graphviz installation path.
  • Network: Unexpected outbound network connections originating from the Python process shortly after NLTK graph rendering functions are invoked, which may indicate a reverse shell or data exfiltration payload.

Mitigation and workarounds

Upgrade NLTK to version 3.10.3 or later, which fixes both vulnerable code sites by using the validated absolute path returned by find_binary rather than invoking the bare binary name. As a configuration-based workaround, ensure that the PATH environment variable contains only absolute, trusted directory paths and that no relative entries (e.g., .) are present; additionally, restrict write access to the current working directory of any process running NLTK. On Windows, be especially cautious of CWD-based binary resolution when running NLTK in shared or user-writable directories (NLTK Advisory, GitHub Advisory).

Additional resources


SourceThis report was generated using AI

Related Linux Debian vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-78683CRITICAL9.4
  • Linux Debian logoLinux Debian
  • nltk
NoYesAug 25, 2026
CVE-2026-78682HIGH8.7
  • Linux Debian logoLinux Debian
  • nltk
NoYesAug 25, 2026
CVE-2026-78681HIGH8.7
  • Linux Debian logoLinux Debian
  • nltk
NoYesAug 25, 2026
CVE-2026-78680HIGH8.5
  • Linux Debian logoLinux Debian
  • nltk
NoYesAug 25, 2026
CVE-2026-78679HIGH7.1
  • Linux Debian logoLinux Debian
  • python-git
NoNoAug 25, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management