Skip to content
CVE PROGRAM SOURCE RECORD8.7 High

CVE-2026-81722

nltk PorterStemmer before 3.10.3 Quadratic-time DoS

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.

Affected products

Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.

nltk nltk

Default version status: unaffected

  • 0 to < 3.10.3affected
  • 3.10.3unaffected
pkg:pypi/nltk

References