Sceawere
Vulnerability Detail
CVE-2026-81724UPDATED Verified Sceawere Triage Sources: NVD / CISA KEV
NLTK Uncontrolled Recursion DoS
Vulnerability Metadata
- Severity
- Medium
- Score / CVSS
- 5.3
- Creation Date
- 1h ago
- Vendor
- nltk
- Product
- nltk
- Attack Type
- Uncontrolled Recursion
- Vector String
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
- Attack Complexity
- LOW
Narrative and Response
Description
NLTK before 3.10.3 contains an uncontrolled recursion vulnerability in nltk.featstruct.FeatStructReader that allows unauthenticated attackers to cause a denial of service by supplying deeply nested feature-structure input. Attackers can craft trivial payloads with nested brackets that exceed Python's recursion limit and raise an unhandled RecursionError, crashing applications that parse user-supplied feature structures or feature grammars.
Executive Summary
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Technical Details
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Mitigations
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
References
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Additional Metadata
{
"score": "5.3",
"pubDate": "2026-08-27T17:21:03.100Z",
"pubdate": "2026-08-27T17:21:03.100Z",
"executiveSummary": "NLTK versions prior to 3.10.3 are susceptible to an uncontrolled recursion vulnerability located within the nltk.featstruct.FeatStructReader component.\nThe vulnerability allows an unauthenticated attacker to induce a Denial of Service (DoS) condition by submitting specially crafted, deeply nested feature-structure inputs.\nWhen processed, these payloads trigger a stack overflow through recursion exhaustion, resulting in an unhandled RecursionError that terminates the application process.\nThe risk implication is significant for services that perform automated parsing of user-supplied feature structures or feature grammars, as it enables remote service disruption without requiring authentication or high-level privileges.\nThe exploitation requirement is minimal, necessitating only the ability to supply input to the affected parsing function.",
"technicalDetails": "The vulnerability resides in the recursive descent parsing logic implemented within the nltk.featstruct.FeatStructReader class. This component is designed to parse feature structures often represented in bracketed notation. The root cause of the vulnerability is the absence of depth-limiting mechanisms or iterative parsing strategies for nested structures.\nWhen the FeatStructReader encounters a series of nested brackets, the parsing logic recursively invokes itself to traverse each level of the hierarchy. Python's recursion limit, controlled by sys.setrecursionlimit(), acts as a hard boundary for the call stack. An attacker can craft a payload consisting of a sufficiently large sequence of opening brackets (e.g., [[[[[[...]]) that forces the recursive calls to exceed the predefined stack depth.\nThe attack flow proceeds as follows: 1) The attacker identifies an application endpoint or interface that utilizes NLTK's FeatStructReader to process input. 2) The attacker submits a malicious string designed to exceed the recursion threshold of the underlying Python interpreter. 3) The FeatStructReader attempts to parse this input, leading to a stack frame exhaustion. 4) The Python interpreter throws a RecursionError. 5) If the calling application lacks explicit exception handling for this specific error, the process crashes, resulting in a complete Denial of Service for that specific instance or worker.\nThis vulnerability is particularly impactful in automated NLP pipelines or web applications that expose grammar-parsing capabilities to untrusted users. Because the parsing process is synchronous, the application remains unavailable until the process is restarted or recovered by a supervisor. There are no authentication or privilege requirements for exploitation, and the attack is feasible over any network path that allows the submission of input to the NLTK parser. Because the crash occurs at the interpreter level, it bypasses traditional input sanitization routines that do not specifically account for recursive structure depth."
}