Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify endpoint rendering user Markdown
-
DeliveryCraft document with many reference-link definitions
-
ExploitSubmit payload to parser
-
ExecutionTrigger quadratic parsing in block_parser
-
PersistExhaust CPU / stall workers
-
ImpactDeny service to legitimate users
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V2 - Validation and Business Logic Algorithmic complexity limits
|
| Exploitation Conditions | The prerequisite is concrete: the target application must feed attacker-controlled Markdown into a Mistune parser instance older than 3.3.0, and the malicious document must contain a large number of reference-link definitions (the '[label]: url' construct) - repeated or distinct - to trigger the quadratic path in block_parser.py and ref_links handling. No authentication, user interaction, or special platform is required (PR:N/UI:N), matching AV:N/AC:L. The limiting factor is deployment-dependent: exploitation only matters where Mistune processes untrusted input, and impact is bounded where the operator already enforces input-size limits, parse timeouts, or per-request CPU quotas; impact is confined to availability, with no path to data disclosure or code execution. |
| Impact | The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H, base 7.5) is internally consistent and credible: network-reachable, no privileges, no user interaction, availability-only impact - a classic algorithmic-complexity DoS. There is no EPSS score, no KEV listing, and no published POC in the provided data, so predicted mass-exploitation probability cannot be quantified; however, the trigger (a text document with many reference-link definitions) is easy to reproduce independently from the public patch commit and advisory, so barrier to exploitation is low. This is a genuine availability priority for any internet-facing service that parses untrusted Markdown, but it carries zero confidentiality or integrity risk - it will not lead to data theft or code execution. Signals are consistent rather than conflicting; the main caveat is that real-world impact depends on deployment (whether Mistune sits behind untrusted input and whether request/CPU limits exist), which raw CVSS cannot capture. |
| Exploit ScenarioDerived | An attacker submits a single Markdown payload - for example a comment, wiki edit, chat message, or API document - that contains thousands of reference-link definitions to a service that renders it with a pre-3.3.0 Mistune. Because parsing scales quadratically, the request consumes disproportionate CPU and stalls the worker; repeating it across connections exhausts the server pool and denies service to legitimate users. Given AV:N/AC:L/PR:N/UI:N, this requires only network access and no credentials, though no public POC is identified at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 08, 2026
Denial of service in Mistune (the lepture Python Markdown parser) before 3.3.0 lets remote unauthenticated attackers exhaust CPU by submitting a Markdown document packed with many repeated or distinct reference-link definitions, which triggers quadratic-time processing in the block parser and its ref_links dictionary handling. Any service that renders attacker-supplied Markdown through Mistune (wikis, comment systems, docs pipelines, notebook converters) can be stalled with a single crafted input. No public exploit is identified at time of analysis and it is not in CISA KEV, but the low-complexity, no-auth vector makes weaponization trivial.
RemediationAI
Vendor-released patch: upgrade Mistune to 3.3.0 or later (pip install --upgrade 'mistune>=3.3.0' and repin the dependency in requirements/lockfiles), per advisory GHSA-ffq3-xpv3-j92q and release https://github.com/lepture/mistune/releases/tag/v3.3.0; the corrective change is commit 2b04d7ba341c16ac78fe82d3076bdd5c3de87c69. Where an immediate upgrade is not possible, apply compensating controls at the point untrusted Markdown enters the parser: cap the maximum size/length of Markdown input accepted from users (trades off legitimate long documents), run parsing under a strict per-request CPU/wall-clock timeout or in a bounded worker/subprocess so a single request cannot pin a core, and rate-limit or queue Markdown-rendering endpoints to blunt repeated abuse. These controls reduce but do not eliminate the quadratic blowup, so upgrading remains the durable fix.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in pypi
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Mistune is a pure-Python Markdown parser exposing renderers and plugins; it is embedded in many web apps and documentation toolchains to convert user Markdown into HTML. The flaw sits in src/mistune/block_parser.py and the ref_links environment dictionary that stores link reference definitions (the '[label]: url' syntax). CWE-407 (Algorithmic Complexity / Inefficient Algorithmic Complexity) is the root-cause class: the parser's handling of reference-link definitions scales quadratically (O(n^2)) with the number of definitions, so input size grows work super-linearly. An attacker does not need a memory bomb or code execution - they simply exploit the parsing algorithm's poor worst-case complexity to burn CPU cycles. The affected package is identified by CPE cpe:2.3:a:lepture:mistune across all versions prior to the fix.
Know when Mistune gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Untrusted Markdown is parsed remotely with no auth or interaction (AV:N/AC:L/PR:N/UI:N); algorithmic DoS impacts only availability (A:H), with no confidentiality or integrity effect and no scope change.
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
Mistune is a Python Markdown parser with renderers and plugins. Prior to 3.3.0, a Markdown document containing many repeated or distinct reference-link definitions causes quadratic work in src/mistune/block_parser.py and the ref_links environment dictionary handling, allowing denial of service through CPU exhaustion. This issue is fixed in version 3.3.0.
Blast Radius
ecosystem impact- 1 pypi packages depend on mistune (1 direct, 0 indirect)
Ecosystem-wide dependent count for version 3.3.0.
Articles & Coverage 1
Executive ViewAI
Mistune, the Python Markdown parser deployed across documentation platforms and comment systems, is vulnerable to denial-of-service attacks triggered by specially crafted Markdown input that exhausts CPU resources. Any service accepting user-supplied Markdown-including wikis, issue trackers, notebook converters, and comment systems-can be stalled with a single malicious document, directly impacting service availability and user productivity. Organizations running Mistune versions prior to 3.3.0 should prioritize immediate assessment and patching.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
Uncontrolled CPU consumption in Mistune, a Python Markdown parser, allows remote unauthenticated attackers to cause deni
mistune.py in Mistune 0.7.4 allows XSS via an unexpected newline (such as in java\nscript:) or a crafted email address,
Quadratic denial of service in Mistune's Markdown parser (parse_link_text) affects versions 3.2.0, 3.2.1 and main prior
Denial of service in Mistune, a Python Markdown parser, affects all versions prior to 3.3.0 when the strikethrough, mark
Denial of service in Mistune, a widely used pure-Python Markdown parser, affects all versions prior to 3.3.0 where the d
In mistune through 2.0.2, support of inline markup is implemented by using regular expressions that can involve a high a
Cross-site scripting (XSS) vulnerability in the _keyify function in mistune.py in Mistune before 0.8.1 allows remote att
Cross-site scripting in Mistune Python Markdown parser (all versions before 3.3.0) allows attacker-controlled Markdown c
Cross-site scripting in Mistune prior to 3.3.0 stems from an incomplete URI scheme blocklist in the `safe_url` filter, p
Path traversal in Mistune's Include plugin allows reading arbitrary files from the server filesystem when processing att
Cross-site scripting in Mistune (Python Markdown parser) prior to version 3.2.1 allows injection of arbitrary HTML attri
Unbounded recursion in Mistune's Include directive (all versions prior to 3.3.0) can be triggered by a pair of mutually-
Same weakness CWE-407 – Inefficient Algorithmic Complexity
View allSame technique Denial Of Service
View allVendor StatusVendor
SUSE
Severity: Moderate| Product | Status |
|---|---|
| SUSE Linux Enterprise Server 16.0 SUSE Linux Enterprise Server for SAP applications 16.0 | Fixed |
| openSUSE Leap 16.0 | Fixed |
| SUSE Linux Enterprise Desktop 15 SP7 | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP7 | Not-Affected |
| SUSE Linux Enterprise Module for Package Hub 15 SP7 | Not-Affected |
| SUSE Linux Enterprise Module for Python 3 15 SP7 | Not-Affected |
| SUSE Linux Enterprise Server 15 SP7 | Not-Affected |
| SUSE Linux Enterprise Server 16.0 | Affected |
| SUSE Linux Enterprise Server 16.1 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP7 | Not-Affected |
| SUSE Linux Enterprise Server for SAP applications 16.0 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.1 | Affected |
| openSUSE Leap 16.0 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4 | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4-LTSS | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5 | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5-LTSS | Not-Affected |
| SUSE Linux Enterprise Module for Python 3 15 SP4 | Not-Affected |
| SUSE Linux Enterprise Module for Python 3 15 SP5 | Not-Affected |
| SUSE Linux Enterprise Module for Python 3 15 SP6 | Not-Affected |
| SUSE Linux Enterprise Server 15 SP4 | Not-Affected |
| SUSE Linux Enterprise Server 15 SP4-LTSS | Not-Affected |
| SUSE Linux Enterprise Server 15 SP5 | Not-Affected |
| SUSE Linux Enterprise Server 15 SP5-LTSS | Not-Affected |
| SUSE Linux Enterprise Server 15 SP6 | Not-Affected |
| SUSE Linux Enterprise Server 15 SP6-LTSS | Not-Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP6 | Not-Affected |
| SUSE Manager Proxy 4.3 | Not-Affected |
| SUSE Manager Retail Branch Server 4.3 | Not-Affected |
| SUSE Manager Server 4.3 | Not-Affected |
| SUSE Linux Enterprise Desktop 15 SP4 | Not-Affected |
| SUSE Linux Enterprise Desktop 15 SP5 | Not-Affected |
| SUSE Linux Enterprise Desktop 15 SP6 | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4-ESPOS | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP6 | Not-Affected |
| SUSE Linux Enterprise Module for Package Hub 15 SP4 | Not-Affected |
| SUSE Linux Enterprise Module for Package Hub 15 SP5 | Not-Affected |
| SUSE Linux Enterprise Module for Package Hub 15 SP6 | Not-Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP4 | Not-Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP5 | Not-Affected |
| openSUSE Leap 15.3 | Not-Affected |
| openSUSE Leap 15.4 | Not-Affected |
| openSUSE Leap 15.5 | Not-Affected |
| openSUSE Leap 15.6 | Not-Affected |
EUVD-2026-42338
GHSA-ffq3-xpv3-j92q
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB