CVE-2026-76098
Received Received - Intake

DoS via Deeply Nested Tokens in Mistune Markdown Parser

Vulnerability report for CVE-2026-76098, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-08-24

Last updated on: 2026-08-24

Assigner: GitHub, Inc.

Description

Mistune is a Python Markdown parser with renderers and plugins. Versions 3.3.0 through 3.3.2 are vulnerable to DoS through deeply nested tokens. HTML rendering creates deeply nested emphasis tokens from consecutive asterisk characters, and recursive rendering in HTMLRenderer.render_token() can exceed Python's recursion limit and raise RecursionError, allowing crafted Markdown to crash a parsing process. This issue is fixed in version 3.3.3

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-08-24
Last Modified
2026-08-24
Generated
2026-08-25
AI Q&A
2026-08-24
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 3 associated CPEs
Vendor Product Version / Range
lepture mistune From 3.3.0 (inc) to 3.3.2 (inc)
lepture mistune 3.3.3
lepture mistune 3.3.2

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-674 The product does not properly control the amount of recursion that takes place, consuming excessive resources, such as allocated memory or the program stack.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This is a Denial of Service (DoS) vulnerability in the Mistune Python Markdown parser. It occurs when deeply nested emphasis tokens (like consecutive asterisks) are rendered into HTML. The recursive rendering process exceeds Python's recursion limit, causing a RecursionError that crashes the parsing process.

Detection Guidance

Check Mistune version with pip show mistune. If version is between 3.3.0 and 3.3.2, the system is vulnerable. Test by parsing Markdown with 1000 consecutive asterisks using a Python script calling mistune.markdown() or mistune.html().

Monitor for RecursionError exceptions in application logs. Use Python's sys.getrecursionlimit() to check default recursion depth.

Impact Analysis

An attacker can exploit this by submitting specially crafted Markdown with excessive nesting (e.g., 1,000 consecutive asterisks). This crashes the Python process handling the parsing, disrupting service availability for applications using vulnerable Mistune versions.

Compliance Impact

This vulnerability primarily impacts service availability through DoS attacks, which may indirectly affect compliance with standards like GDPR or HIPAA that require data availability and system reliability. However, the CVE itself does not directly violate these regulations but could contribute to non-compliance if exploited to disrupt critical systems handling sensitive data.

Mitigation Strategies

Upgrade Mistune to version 3.3.3 or later. Implement input validation to limit consecutive emphasis characters. Set max_emphasis_depth parameter to 20 or lower in InlineParser.

Apply request timeouts and higher recursion limits in deployed applications. Refactor HTML rendering to use iterative stack-based approach instead of recursion.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-76098. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart