---
id: CVE-2026-71513
title: >-
  NLTK before 3.10.3 contains a remote code execution vulnerability in
  AllowlistUnpickler that validates only the pickle module string and not the
  global name, allowing attackers to resolve dotted names by attribute traversal
  to callables …
summary: >-
  NLTK before 3.10.3 contains a remote code execution vulnerability in
  AllowlistUnpickler that validates only the pickle module string and not the
  global name, allowing attackers to resolve dotted names by attribute traversal
  to callables …
severity: high
cvss: 8.8
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H'
cwe:
  - CWE-502
vendor: nltk
product: nltk
affected:
  - nltk < 3.10.3
patched:
  - nltk 3.10.3
published: '2026-08-22'
updated: '2026-10-14'
sourceUpdated: '2026-10-14T19:10:00.297'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-71513'
references:
  - url: 'https://github.com/nltk/nltk'
    label: disclosure@vulncheck.com
  - url: 'https://github.com/nltk/nltk/blob/v3.10.2/nltk/picklesec.py#L119-L124'
    label: disclosure@vulncheck.com
  - url: >-
      https://github.com/nltk/nltk/commit/c3e37113742a1ebeeb4f2ca58941f320f98805ea
    label: disclosure@vulncheck.com
  - url: >-
      https://www.vulncheck.com/advisories/nltk-through-remote-code-execution-via-allowlistunpickler-dotted-name-bypass
    label: disclosure@vulncheck.com
  - url: 'https://nvd.nist.gov/vuln/detail/CVE-2026-71513'
  - url: 'https://pypi.org/project/nltk'
  - url: 'https://github.com/advisories/GHSA-5gh2-94qg-qppq'
  - url: >-
      https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-71513.json
  - url: 'https://access.redhat.com/security/cve/CVE-2026-71513'
  - url: 'https://bugzilla.redhat.com/show_bug.cgi?id=2521317'
  - url: 'https://www.cve.org/CVERecord?id=CVE-2026-71513'
tags:
  - nvd
  - osv
  - pip
  - csaf
  - vex
  - red-hat
epss: 0.01097
epssPercentile: 0.65436
aliases:
  - GHSA-5gh2-94qg-qppq
  - PYSEC-2026-3867
ecosystem: pip
ingestedAt: '2026-08-23T04:42:14.972Z'
---

## Overview

NLTK before 3.10.3 contains a remote code execution vulnerability in AllowlistUnpickler that validates only the pickle module string and not the global name, allowing attackers to resolve dotted names by attribute traversal to callables outside the allowlisted namespace. Attackers can craft untrusted transition-parser models that execute arbitrary commands when TransitionParser.parse loads the model through allowlisted_pickle_load.

## Affected

- `nltk < 3.10.3`

## Remediation

Upgrade past the affected range:

- `nltk 3.10.3`

## Package advisory (CVE-2026-71513)

Affected packages:

- `nltk >= 3.10.0, < 3.10.3`

Patched in:

- `nltk 3.10.3`

Source: https://osv.dev/vulnerability/GHSA-5gh2-94qg-qppq

## Vendor advisories

- **Red Hat VEX** · Important · affected: Lightspeed Core, OpenShift Lightspeed · no fix planned: Lightspeed Core, OpenShift Lightspeed · updated 2026-10-15 · [vex](https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-71513.json)
