CVE-2026-81722 nltk PorterStemmer before 3.10.3 Quadratic-time DoS
An attacker can cause a denial of service by submitting a specially crafted token to the PorterStemmer, leading to excessive CPU consumption.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2026-81722?
CVE-2026-81722 is a high-severity denial of service vulnerability in nltk, published on 27 Aug 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
nltk PorterStemmer in versions <= 3.10.2 (fixed in 3.10.3) contains an inefficient-algorithmic-complexity denial of service in PorterStemmer.stem(). The _is_consonant() helper walks backward over the entire run of trailing 'y' characters on every call, and _measure() invokes it for each stem position, causing O(n^2) behavior. A single ~20-50 KB untrusted token consisting of a long run of the letter 'y' followed by a matching suffix (e.g., 'ness') can pin a CPU core for seconds to minutes, causing availability impact.
Weakness: CWE-407
Which versions are affected by CVE-2026-81722?
3 open source packages ship an affected version, including nltk. It affects 1 product.
| Package | Affected | Fixed in |
|---|---|---|
nltk PyPI | All versions | 3.10.3 |
nltk PyPI | All versions | 3.10.3 |
nltk PyPI | All versions | 3.10.3 |
Products include Nltk Nltk.
How do I fix CVE-2026-81722?
Upgrade nltk to 3.10.3 or later.
Upgrade, then put limits on request size, rate and nesting depth so one client cannot exhaust the service. More about Denial of service.
Is CVE-2026-81722 being exploited?
It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-81722 exists.
Other vulnerabilities in nltk
- CVE-2026-0848 Arbitrary Code Execution in NLTK StanfordSegmenter via Untrusted JAR Loading
- CVE-2025-14009 Zip Slip Vulnerability in nltk/nltk Leading to Remote Code Execution
- CVE-2026-78683 NLTK before 3.10.0 Remote Code Execution via Unsafe Pickle Deserialization
- CVE-2026-79657 NLTK before 3.10.3 Remote Code Execution via Unsafe Pickle Deserialization
- CVE-2026-79675 NLTK before 3.10.3 JVM Argument Injection via Per-Call Options
Sources
Also known as DEBIAN-CVE-2026-81722, ECHO-4ba5-a214-fe9e, GHSA-ww6m-cw3f-q94g, MINI-q424-r29p-q863, PYSEC-2026-3738, UBUNTU-CVE-2026-81722.