{"description":"Trending threats, MITRE ATT\u0026CK coverage, and detection metadata. Fed continuously.","favicon":"https://feed.craftedsignal.io/favicon-32x32.png","feed_url":"https://feed.craftedsignal.io/cpes/cpe2.3amistune_projectmistune3.3.0python/feed.json","home_page_url":"https://feed.craftedsignal.io/","icon":"https://feed.craftedsignal.io/apple-touch-icon.png","items":[{"_cs_actors":[],"_cs_cpes":["cpe:2.3:a:mistune_project:mistune:3.3.0:*:*:*:*:python:*:*","cpe:2.3:a:mistune_project:mistune:3.3.1:*:*:*:*:python:*:*","cpe:2.3:a:mistune_project:mistune:3.3.2:*:*:*:*:python:*:*"],"_cs_cves":[{"cvss":7.5,"id":"CVE-2026-76098"}],"_cs_exploited":false,"_cs_has_poc":false,"_cs_poc_references":[],"_cs_products":["mistune (\u003e= 3.3.0, \u003c 3.3.3)"],"_cs_severities":["low"],"_cs_tags":["denial-of-service","markdown","python","vulnerability"],"_cs_type":"advisory","_cs_vendors":[],"content_html":"\u003cp\u003eMistune versions 3.3.0 through 3.3.2 are vulnerable to a Denial of Service (DoS) attack stemming from uncontrolled recursion during the HTML rendering process. The vulnerability exists within the InlineParser's emphasis delimiter processing, which generates deeply nested strong and emphasis HTML tokens when provided with repetitive character sequences. Specifically, an input containing approximately 1,000 consecutive asterisk characters triggers the generation of roughly 500 levels of nested tokens. During the rendering phase, the HTMLRenderer.render_tokens() method processes these tokens recursively. Given that each nesting level consumes multiple stack frames, the rendering process exceeds the Python default recursion limit (typically 1,000), resulting in a RecursionError and subsequent crash of the host process. This vulnerability affects all core APIs, including markdown() and html(), and is reachable via any application endpoint that accepts user-supplied Markdown content for rendering.\u003c/p\u003e\n\u003ch2 id=\"attack-chain\"\u003eAttack Chain\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eAttacker identifies a web application or backend service that utilizes Mistune v3.3.0-3.3.2 to parse user-generated Markdown input.\u003c/li\u003e\n\u003cli\u003eAttacker crafts a malicious payload consisting of approximately 1,000 consecutive asterisk (*) characters.\u003c/li\u003e\n\u003cli\u003eThe web application receives the malicious payload via a standard input method (e.g., forum post, comment, or API request).\u003c/li\u003e\n\u003cli\u003eThe application passes the malicious string to the vulnerable Mistune library (e.g., mistune.html() or mistune.markdown()).\u003c/li\u003e\n\u003cli\u003eMistune's InlineParser parses the asterisks and creates an excessive tree of nested emphasis/strong tokens in memory.\u003c/li\u003e\n\u003cli\u003eThe HTMLRenderer initiates a recursive render process to convert the token tree into HTML output.\u003c/li\u003e\n\u003cli\u003eThe recursion depth exceeds Python's sys.getrecursionlimit() due to the stack frame overhead of the renderer.\u003c/li\u003e\n\u003cli\u003eA RecursionError is raised, causing the Python process to crash and resulting in a denial of service for that process.\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"impact\"\u003eImpact\u003c/h2\u003e\n\u003cp\u003eThe vulnerability carries a CVSS 3.1 score of 7.5. Successful exploitation allows an unauthenticated remote attacker to crash the application process, leading to a denial of service for all users sharing that process. This is particularly impactful for multi-tenant web applications or services running in shared worker environments, where a single request can terminate the entire service instance.\u003c/p\u003e\n\u003ch2 id=\"recommendation\"\u003eRecommendation\u003c/h2\u003e\n\u003cp\u003ePrioritize the following actions to mitigate CVE-2026-76098:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade the mistune library to version 3.3.3 or later immediately, as this version contains the necessary logic to prevent excessive nesting.\u003c/li\u003e\n\u003cli\u003eFor environments unable to update immediately, implement a pre-processing filter on input strings to detect and reject Markdown payloads containing excessive consecutive special characters (e.g., a sequence of \u0026gt;50 asterisks).\u003c/li\u003e\n\u003cli\u003eImplement request-level timeouts for all services invoking Markdown rendering to limit the duration and impact of resource-intensive parsing operations.\u003c/li\u003e\n\u003cli\u003eEvaluate the necessity of custom renderers that use iterative, stack-based processing instead of recursive calls to handle nested Markdown elements safely.\u003c/li\u003e\n\u003c/ul\u003e\n","date_modified":"2026-09-02T18:03:41Z","date_published":"2026-09-02T18:03:41Z","id":"https://feed.craftedsignal.io/briefs/2026-09-mistune-dos/","summary":"Mistune versions 3.3.0 through 3.3.2 are susceptible to a denial of service attack via uncontrolled recursion during the rendering of deeply nested emphasis markers.","title":"Mistune Denial of Service via Markdown Recursion","url":"https://feed.craftedsignal.io/briefs/2026-09-mistune-dos/"}],"language":"en","title":"CraftedSignal Threat Feed - Cpe:2.3:a:mistune_project:mistune:3.3.0:*:*:*:*:python:*:*","version":"https://jsonfeed.org/version/1.1"}