Vulnerability Details CVE-2026-78683
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.
Exploit prediction scoring system (EPSS) score
EPSS Score 0.003
EPSS Ranking 21.4%
CVSS Severity
CVSS v3 Score 9.6
Products affected by CVE-2026-78683
-
cpe:2.3:a:nltk:nltk:2.0.1
-
cpe:2.3:a:nltk:nltk:2.0.3
-
cpe:2.3:a:nltk:nltk:2.0.4
-
cpe:2.3:a:nltk:nltk:3.0.0
-
cpe:2.3:a:nltk:nltk:3.0.1
-
cpe:2.3:a:nltk:nltk:3.0.2
-
cpe:2.3:a:nltk:nltk:3.0.3
-
cpe:2.3:a:nltk:nltk:3.0.4
-
cpe:2.3:a:nltk:nltk:3.0.5
-
-
-
cpe:2.3:a:nltk:nltk:3.2.1
-
cpe:2.3:a:nltk:nltk:3.2.2
-
cpe:2.3:a:nltk:nltk:3.2.3
-
cpe:2.3:a:nltk:nltk:3.2.4
-
cpe:2.3:a:nltk:nltk:3.2.5
-
-
-
cpe:2.3:a:nltk:nltk:3.4.1
-
cpe:2.3:a:nltk:nltk:3.4.3
-
cpe:2.3:a:nltk:nltk:3.4.4
-
cpe:2.3:a:nltk:nltk:3.4.5
-
-
-
cpe:2.3:a:nltk:nltk:3.6.1
-
cpe:2.3:a:nltk:nltk:3.6.2
-
cpe:2.3:a:nltk:nltk:3.6.3
-
cpe:2.3:a:nltk:nltk:3.6.4
-
cpe:2.3:a:nltk:nltk:3.6.5
-
cpe:2.3:a:nltk:nltk:3.6.6
-
cpe:2.3:a:nltk:nltk:3.6.7
-
-
-
cpe:2.3:a:nltk:nltk:3.8.1
-
-
cpe:2.3:a:nltk:nltk:3.9.1
-
cpe:2.3:a:nltk:nltk:3.9.2
-
cpe:2.3:a:nltk:nltk:3.9.3
-
cpe:2.3:a:nltk:nltk:3.9.4