CVE-2026-12876

MEDIUMCVSS · not yet scored
EchelonGraph verdictMonitorLow exploitation likelihood right now — keep watching.
  • No CVSS published and no exploitation signals yet
CISA-KEV: Not listedEPSS PROB: CVSS v2: Exploit: None knownExposed: 0

No vendor fix yet — apply a workaround or compensating control (WAF / firewall / segmentation) and watch for a patch.

NLTK: Uncontrolled resource consumption in RecursiveDescentParser via ambiguous or left-recursive grammars

nltk.parse.RecursiveDescentParser (and SteppingRecursiveDescentParser) enumerate parses top-down with no bound on the number of recursive steps. A small, crafted context-free grammar makes a short input consume unbounded CPU (and/or exhaust the Python recursion stack), pinning a process indefinitely — a denial of service.

Proof of concept

Both of the following hang on a 24-token input (killed after 8s; growth is super-linear in input length), on NLTK develop:

from nltk import CFG
from nltk.parse import RecursiveDescentParser

(a) left recursion -> unbounded recursion

g = CFG.fromstring("S -> S S | 'a'") list(RecursiveDescentParser(g).parse(["a"] * 24)) # hangs

(b) ambiguous grammar -> exponential number of parses

g = CFG.fromstring("S -> 'a' S | 'a' S S | 'a'") list(RecursiveDescentParser(g).parse(["a"] * 24)) # hangs

Impact

An application that runs RecursiveDescentParser on a grammar (or an input) drawn from an untrusted source can be driven into an unbounded CPU / stack-exhaustion loop by a tiny payload. No confidentiality or integrity impact; single-process availability only.

Sibling

The RegexpTokenizer ReDoS reported alongside this (CVE-2026-12875) is a different class (caller-supplied regex) and is addressed under GHSA-w3v8-gmh9-3wv7.

CVSS v3
EchelonGraph score
Not yet assessedNo source has published severity data for this CVE yet — no CVSS score from NVD or a CNA, no GitHub advisory, and it is not in CISA KEV. This is not a rating of zero; we cannot assess it yet.
EG Score
EG Risk
EPSS PROB
EPSS %ILE
KEV
Not listed

Published

September 2, 2026

Last Modified

September 2, 2026

Vendor Advisories for CVE-2026-12876(1)

These vendors published their own advisory mentioning this CVE — often with vendor-specific remediation steps + affected product lists not in NVD.

Affected Packages

(4 across 4 ecosystems)
Debian:12(1)
PackageVulnerable rangeFixed inDependents
nltk3.10.0-1 ... 3.9.3-1 (9 versions)
Debian:13(1)
PackageVulnerable rangeFixed inDependents
nltk3.10.0-1 ... 3.9.3-1 (6 versions)
Debian:14(1)
PackageVulnerable rangeFixed inDependents
nltk3.10.0-1 ... 3.9.3-1 (6 versions)
PyPI(1)
PackageVulnerable rangeFixed inDependents
nltk0.8 ... 3.9b1 (68 versions)3.10.3

Data Freshness Timeline

(refreshed 0× in last 7d / 1× in last 30d)

Each row is a source pipeline that fetched or updated this CVE on that date, with what changed. For example, "NVD update" means NVD published or revised its analysis for this CVE; "MITRE cvelistV5" means we ingested or refreshed it from the CNA feed. Most recent first.

  1. 2026-09-02 14:59 UTCEG score recompute

Frequently asked(3)

What is CVE-2026-12876?
CVE-2026-12876 is a medium vulnerability published on September 2, 2026. NLTK: Uncontrolled resource consumption in RecursiveDescentParser via ambiguous or left-recursive grammars nltk.parse.RecursiveDescentParser (and SteppingRecursiveDescentParser) enumerate parses top-down with no bound on the number of recursive steps. A small, crafted context-free grammar makes a…
When was CVE-2026-12876 disclosed?
CVE-2026-12876 was first published in the National Vulnerability Database on September 2, 2026. EchelonGraph re-ingests CVE updates from NVD on a 2-hour cycle, so this page reflects the latest published state.
How do I remediate CVE-2026-12876?
Patch to the fixed version published by the affected vendor. Where vendor advisories exist for CVE-2026-12876, EchelonGraph cross-links them in the Vendor Advisories panel below — those typically contain the canonical remediation steps, fixed version numbers, and any vendor-specific mitigations.

Dependency Blast Radius

See which npm, PyPI, Go, and Maven packages are affected by CVE-2026-12876

Explore →

Is Your Infrastructure Affected by CVE-2026-12876?

EchelonGraph automatically scans your cloud infrastructure and maps CVE exposure using blast radius analysis.