Summary
Vulnerability in nltk (CVE-2026-78680). Successful exploitation can lead to full system takeover. Exploitable via dot. Mitigation: upgrade to >=3.10.3 or later.
Original description
The description as published by the source.
Two NLTK sites executed the Graphviz dot program by bare name, so process creation resolved it via the search path — and on Windows via the current working directory — rather than a validated absolute location. An attacker who can place a file named dot where resolution looks (the CWD on Windows, or a writable/relative entry such as . on PATH) has their binary executed in place of Graphviz (arbitrary code execution).
Affected (<= 3.10.2):
nltk.parse.dependencygraph.dot2img— calledfind_binary("dot")but discarded the returned validated path and then ran the bare name["dot", ...], so the validation had no effect.nltk.translate.api.AlignedSent._repr_svg_— ran the bare name with no validation at all (IPython SVG rendering).
This is the same class already fixed for the senna, weka, boxer, malt, repp and hunpos wrappers. nltk.internals.find_binary refuses a CWD-relative match for a bare tool name and returns only a trusted absolute path; the fix runs that path in both sites.
Attack demonstration
Captured output, not illustrative. A ./dot that writes a PWNED marker, planted in the CWD with . prepended to PATH.
The vulnerable behaviour (old bare-name exec):
Control (OLD behavior) — bare ['dot'] in this dir with '.' on PATH:
bare ['dot'] executed planted binary = True
The patched functions refuse it:
FIXED code, with ./dot planted and '.' on PATH:
dependencygraph.dot2img : Exception "Cannot find the dot binary..."…
Source: NIST National Vulnerability Database NVD GitHub Advisory
AI summary
Written by an external AI model and may contain mistakes. Check the original description and references below before acting on it.
NLTKのバージョン3.10.3より前のものは、Graphviz dotバイナリを呼び出す際に絶対パスの検証を怠るため、攻撃者が任意のコードを実行できる脆弱性が存在します。特に、攻撃者は悪意のある dot バイナリを検索パスまたは現在の作業ディレクトリに置くことで、この脆弱性を悪用することが可能です。
NLTKの古いバージョンでGraphviz dotバイナリを呼び出す際にパス検証が欠如していること。
NLTKのバージョン3.10.3未満。
攻撃者が任意のコードを実行できるため重大。
NLTKをバージョン3.10.3以上にアップデートする。
既知の回避策は特になし。
NLTKのバージョンを確認し、3.10.3未満であれば影響を受ける。
Affected packages
Fix status by distribution
Fixed packages published by each distribution for this CVE
- Debian DEBIAN-CVE-2026-78680 nltk
References
- web github.com
- web disclosure@vulncheck.com
- web nvd.nist.gov
- web github.com
- web github.com
- web github.com
- web github.com