Nltk Library: Critical RCE and High-Severity Flaws Disclosed Together
Key findings • Critical pickle deserialization vulnerability in Nltk's TransitionParser.parse() method (CVE-2026-78683). • High-severity SSRF vulnerability in Nltk's pathsec.urlopen when usin…

Key findings
- Critical pickle deserialization vulnerability in Nltk's TransitionParser.parse() method (CVE-2026-78683).
- High-severity SSRF vulnerability in Nltk's pathsec.urlopen when using HTTP proxies (CVE-2026-78682).
- XXE vulnerability in Nltk's XML parsing can lead to denial-of-service (CVE-2026-78681).
- Arbitrary code execution possible via Graphviz dot binary path manipulation (CVE-2026-78680).
- Affected versions are Nltk < 3.10.0 and < 3.10.3; patched in 3.10.0 and 3.10.3.
On August 25, 2026, a batch of four vulnerabilities was disclosed for the Natural Language Toolkit (Nltk) Python library. The disclosures include one critical and three high-severity flaws, impacting versions prior to 3.10.0 and 3.10.3. These vulnerabilities expose users to risks ranging from arbitrary code execution to denial of service.
One of the most severe issues, CVE-2026-78683, is a critical-severity vulnerability (CVSSv3 9.6) stemming from an unsafe pickle deserialization in the TransitionParser.parse() method. This flaw, present in Nltk versions before 3.10.0 (<=3.9.4), allows for arbitrary code execution when processing untrusted data.
Three high-severity vulnerabilities were also detailed:
- CVE-2026-78682 (CVSSv3 7.5): A server-side request forgery (SSRF) vulnerability in
nltk.pathsec.urlopenand related functions when an HTTP proxy is configured. This could allow an attacker to make the Nltk instance perform requests to arbitrary internal or external resources. - CVE-2026-78681 (CVSSv3 7.5): An XML external entity (XXE) vulnerability due to the use of
xml.etree.ElementTreewithout proper DTD validation. This can lead to denial-of-service conditions by consuming excessive memory. - CVE-2026-78680 (CVSSv3 7.8): An arbitrary code execution vulnerability arising from the failure to use validated absolute paths when invoking the Graphviz
dotbinary. This allows attackers to execute arbitrary code by manipulating the system's search path for thedotexecutable.
Nltk has released patches for these vulnerabilities. Versions 3.10.0 address the pickle deserialization flaw (CVE-2026-78683), while versions 3.10.3 address the SSRF, XXE, and arbitrary code execution vulnerabilities (CVE-2026-78682, CVE-2026-78681, and CVE-2026-78680). Users are strongly advised to update to the patched versions to mitigate these security risks.
The coordinated disclosure of these vulnerabilities highlights potential risks within Nltk's parsing and external process invocation mechanisms. Users should prioritize updating their Nltk installations to the latest versions to protect against these critical and high-severity security flaws.