CVE-2026-78683CWE-502insecure-deserialization

CVE-2026-78683

Critical · published August 25, 2026

CVSS v3.1
9.6
EPSS
1%
Percentile
42.7
In the wild
Unconfirmed
What it is

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.

The record
Technical detail
CVSS v3.1
9.6 · CRITICAL
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H
CVSS v4.0
9.4 · CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
EPSS
0.00510 · 42.7th percentile
Weakness
CWE-502 · Deserialization of Untrusted Data
Published
2026-08-25T06:16Z
Affected products (1)
ProductVersionsFixed in
nltk/nltk< 3.10.03.10.0
References (3)
EPSS history
Timeline
  • 26 AUG 08:27Z
    EPSS moved — → 0%
    epss
  • 25 AUG 01:30Z
    NLTK before 3.10.0 Remote Code Execution via Unsafe Pickle Deserialization
    cvelistv5