CVE-2026-78683 NLTK before 3.10.0 Remote Code Execution via Unsafe Pickle Deserialization
Attackers can execute arbitrary code by tricking applications into loading malicious model files via unsafe pickle deserialization in NLTK.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- A user has to click or open something
- Fix
- Available
What is CVE-2026-78683?
CVE-2026-78683 is a critical unsafe deserialization vulnerability in nltk, published on 25 Aug 2026. An attacker can exploit it over the internet without logging in, and only if a user opens a file or follows a link.
Official description
NLTK before 3.10.0 (affected versions <=3.9.4) contains an unsafe pickle deserialization vulnerability in the TransitionParser.parse() method (nltk/parse/transitionparser.py). The method calls pickle_load() with the default restricted=False, routing deserialization through WarningUnpickler, which does not override find_class() and therefore permits arbitrary class resolution. When an application loads an attacker-crafted model file, embedded pickle gadget chains execute arbitrary Python code with the privileges of the user running the application. NLTK provides a RestrictedUnpickler for safe deserialization, but it is not used by production code paths. Fixed in 3.10.0.
Weakness: CWE-502
Which versions are affected by CVE-2026-78683?
3 open source packages ship an affected version, including nltk. It affects 1 product.
| Package | Affected | Fixed in |
|---|---|---|
nltk PyPI | All versions | 3.10.0 |
nltk PyPI | All versions | 3.10.0 |
nltk PyPI | All versions | 3.10.0 |
Products include Nltk Nltk.
How do I fix CVE-2026-78683?
Upgrade nltk to 3.10.0 or later.
Upgrade, and only deserialise data from trusted sources or with an allow-list of types. More about Unsafe deserialization.
Is CVE-2026-78683 being exploited?
It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-78683 exists.
Other vulnerabilities in nltk
- CVE-2026-0848 Arbitrary Code Execution in NLTK StanfordSegmenter via Untrusted JAR Loading
- CVE-2025-14009 Zip Slip Vulnerability in nltk/nltk Leading to Remote Code Execution
- CVE-2026-79657 NLTK before 3.10.3 Remote Code Execution via Unsafe Pickle Deserialization
- CVE-2026-79675 NLTK before 3.10.3 JVM Argument Injection via Per-Call Options
- CVE-2026-79674 NLTK 3.10.2 Path Traversal via corpus-reader constructors
Sources
Also known as DEBIAN-CVE-2026-78683, ECHO-4f4f-fb61-1650, GHSA-rhp5-r9x4-f5g2, MINI-hmvw-744c-g4rh, PYSEC-2026-3734.