Description
NLTK versions before 3.9.4 contain an unbounded recursion vulnerability in JSONTaggedDecoder.decode_obj() that allows attackers to cause denial of service by supplying deeply nested JSON structures. Attackers can craft JSON payloads exceeding the recursion limit to trigger an unhandled RecursionError that crashes the Python process.
Published: 2026-08-22
Score: 8.7 High
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service
Action: Immediate Patch
AI Analysis

Impact

NLTK versions before 3.9.4 contain an unbounded recursion bug in JSONTaggedDecoder.decode_obj(). Attackers can supply deeply nested JSON structures that exceed Python’s recursion limit, triggering an unhandled RecursionError that crashes the interpreter process. The flaw is classified as CWE‑674, Uncontrolled Recursion, and also exhibits CWE‑606, Missing Input Validation, as the decoder accepts arbitrary nested structures without bounds. The flaw does not provide a privilege escalation path but can completely halt services that depend on NLTK, resulting in a denial of service.

Affected Systems

All users of the Python Natural Language Toolkit (NLTK) prior to release 3.9.4 are affected. The vulnerability applies to any installation where the vulnerable JSONTaggedDecoder is used to parse user‑supplied JSON data.

Risk and Exploitability

The CVSS score of 8.7 indicates a high severity, and the exploit requires the ability to deliver a crafted JSON payload to the NLTK decoder. While the EPSS score is < 1%, the lack of an official KEV listing does not mitigate the risk, as the flaw can be leveraged in any environment exposing the decoding functionality. Remediation is recommended as the threat is active and the potential for service disruption is significant.

Generated by OpenCVE AI on August 31, 2026 at 13:56 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade NLTK to version 3.9.4 or later.
  • If an upgrade is not immediately possible, wrap calls to JSONTaggedDecoder.decode_obj() in a try/except block that catches RecursionError or prepend a sanity check that limits JSON nesting depth.
  • Monitor application logs for RecursionError traces and apply process supervision to restart the service automatically if a crash occurs.

Generated by OpenCVE AI on August 31, 2026 at 13:56 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-rf74-v2fm-23pw Natural Language Toolkit (NLTK) has unbounded recursion in JSONTaggedDecoder.decode_obj() may cause DoS
History

Mon, 31 Aug 2026 12:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-606
References
Metrics threat_severity

None

threat_severity

Important


Wed, 26 Aug 2026 19:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Sat, 22 Aug 2026 14:30:00 +0000

Type Values Removed Values Added
Description NLTK versions before 3.9.4 contain an unbounded recursion vulnerability in JSONTaggedDecoder.decode_obj() that allows attackers to cause denial of service by supplying deeply nested JSON structures. Attackers can craft JSON payloads exceeding the recursion limit to trigger an unhandled RecursionError that crashes the Python process.
Title NLTK before 3.9.4 Denial of Service via JSONTaggedDecoder
First Time appeared Nltk
Nltk nltk
Weaknesses CWE-674
CPEs cpe:2.3:a:nltk:nltk:*:*:*:*:*:*:*:*
Vendors & Products Nltk
Nltk nltk
References
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'}

cvssV4_0

{'score': 8.7, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-08-26T17:55:08.015Z

Reserved: 2026-07-26T12:22:34.138Z

Link: CVE-2026-66393

cve-icon Vulnrichment

Updated: 2026-08-26T17:55:03.740Z

cve-icon NVD

Status : Analyzed

Published: 2026-08-22T15:16:19.633

Modified: 2026-08-27T14:47:55.913

Link: CVE-2026-66393

cve-icon Redhat

Severity : Important

Publid Date: 2026-08-22T14:12:42Z

Links: CVE-2026-66393 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-31T14:00:19Z

Weaknesses
  • CWE-606

    Unchecked Input for Loop Condition

  • CWE-674

    Uncontrolled Recursion