---
id: CVE-2026-78683
title: >-
  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)
summary: >-
  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=Fa…
severity: critical
cvss: 9.6
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H'
cwe:
  - CWE-502
vendor: nltk
product: nltk
affected:
  - nltk < 3.10.0
patched:
  - nltk 3.10.0
published: '2026-08-25'
updated: '2026-10-12'
sourceUpdated: '2026-10-12T17:10:00.163'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-78683'
references:
  - url: 'https://github.com/nltk/nltk/security/advisories/GHSA-rhp5-r9x4-f5g2'
    label: disclosure@vulncheck.com
  - url: >-
      https://www.vulncheck.com/advisories/nltk-before-remote-code-execution-via-unsafe-pickle-deserialization
    label: disclosure@vulncheck.com
  - url: 'https://github.com/nltk/nltk/security/advisories/GHSA-rhp5-r9x4-f5g2'
    label: 134c704f-9b21-4f2e-91b3-4a467353bcc0
  - url: >-
      https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-78683.json
  - url: 'https://access.redhat.com/security/cve/CVE-2026-78683'
  - url: 'https://bugzilla.redhat.com/show_bug.cgi?id=2523216'
  - url: 'https://www.cve.org/CVERecord?id=CVE-2026-78683'
  - url: 'https://nvd.nist.gov/vuln/detail/CVE-2026-78683'
  - url: 'https://github.com/nltk/nltk/pull/3631'
  - url: >-
      https://github.com/nltk/nltk/commit/f26b3753038d937b68145daf15e9636f8451053c
  - url: 'https://github.com/nltk/nltk'
  - url: 'https://github.com/nltk/nltk/releases/tag/v3.10.0'
  - url: >-
      https://github.com/pypa/advisory-database/tree/main/vulns/nltk/PYSEC-2026-3734.yaml
  - url: 'https://github.com/advisories/GHSA-rhp5-r9x4-f5g2'
  - url: 'https://access.redhat.com/errata/RHSA-2026:84734'
tags:
  - nvd
  - csaf
  - vex
  - red-hat
  - osv
  - pip
  - ghsa
epss: 0.0051
epssPercentile: 0.43338
aliases:
  - GHSA-rhp5-r9x4-f5g2
  - PYSEC-2026-3734
ecosystem: pip
ingestedAt: '2026-09-02T19:31:24.348Z'
---

## Overview

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.

## Affected

- `nltk < 3.10.0`

## Remediation

Upgrade past the affected range:

- `nltk 3.10.0`

## Package advisory (CVE-2026-78683)

Affected packages:

- `nltk < 3.10.0`

Patched in:

- `nltk 3.10.0`

Source: https://osv.dev/vulnerability/GHSA-rhp5-r9x4-f5g2

## Vendor advisories

- **Red Hat VEX** · Important · affected: Lightspeed Core, OpenShift Lightspeed, Red Hat Ansible Automation Platform 2 · no fix planned: Red Hat Ansible Automation Platform 2, Lightspeed Core, OpenShift Lightspeed · updated 2026-10-19 · [vex](https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-78683.json)
- **RHSA-2026:84734** · Red Hat · fixed in: Red Hat OpenShift AI 3.4 · released 2026-10-19 · [advisory](https://access.redhat.com/errata/RHSA-2026:84734)
