Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach Markdown-rendering endpoint
-
DeliverySubmit small input of many '[' chars
-
ExploitTrigger O(n²) re-scan in parse_link_text
-
ExecutionQuadratic CPU consumed per request
-
PersistRepeat/parallelize to exhaust cores
-
ImpactDenial of service for legitimate users
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource consumption limits
MITRE ATT&CK
1 technique across 1 tactic: Impact The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | The only prerequisite is that the target application passes attacker-controlled Markdown to Mistune's parser (any code path reaching parse_link_text) using a version earlier than 3.3.0; the malicious input is simply Markdown containing many consecutive '[' characters. No special configuration, plugin, or non-default mode is required, and per the CVSS vector (PR:N/UI:N/AT:N) no authentication, user interaction, or additional attack requirement is needed - exploitation works against default behavior. The practical limiting factor is exposure: the bug is only reachable where untrusted Markdown is rendered, so deployments that parse only trusted/internal content, that already impose strict input-size caps or rendering timeouts, or that have upgraded to 3.3.0 are not at risk. |
| Impact | The CVSS 4.0 score of 8.7 (High) reflects AV:N/AC:L/AT:N/PR:N/UI:N with availability-only impact (VA:H, VC/VI:N), i.e., a fully remote, unauthenticated, low-complexity attack whose sole consequence is service disruption - no confidentiality or integrity loss. This is a credible and easily realized risk wherever Mistune parses attacker-influenced Markdown, since the payload is small and the quadratic blow-up is deterministic rather than probabilistic. No EPSS score, SSVC decision, KEV listing, or public POC was provided in the source data, so exploitation-probability signals are absent; the practical severity is bounded by the fact that impact is limited to resource exhaustion and is typically recoverable once the request is killed or rate-limited. Net: a genuine priority for any internet-facing service that renders untrusted Markdown, but a lower priority for purely internal/trusted-input deployments. Note the score is availability-weighted - the 8.7 should not be read as implying any code-execution or data-exposure risk. |
| Exploit ScenarioDerived | An attacker submits a comment, chat message, issue body, or API payload containing a short string of many consecutive '[' characters to a web service that renders it with a pre-3.3.0 Mistune. The server spends quadratic CPU time in parse_link_text on that single small request, and by sending a handful of such requests concurrently the attacker exhausts available cores and degrades or halts service for legitimate users. No public exploit code is identified, but the payload is trivial to craft and requires no authentication, special timing, or user interaction. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 24, 2026
Uncontrolled CPU consumption in Mistune, a Python Markdown parser, allows remote unauthenticated attackers to cause denial of service against any application that renders untrusted Markdown through versions prior to 3.3.0. The flaw lives in parse_link_text, which runs a regex search inside a loop and re-scans the remaining input each iteration, yielding roughly O(n²) behavior; a tiny payload of many consecutive '[' characters can pin a CPU core. There is no public exploit identified at time of analysis and the issue is not in CISA KEV, but the trigger is trivial to construct and the GitHub Security Advisory documents the root cause precisely.
RemediationAI
Vendor-released patch: upgrade Mistune to 3.3.0 or later (e.g., pip install --upgrade 'mistune>=3.3.0' and update pinned requirements/lockfiles, then rebuild affected containers/images). Consult the advisory at https://github.com/lepture/mistune/security/advisories/GHSA-qcq2-496w-v96p for details. Where immediate upgrade is not possible, apply compensating controls at the application boundary: cap the maximum size of Markdown input accepted from untrusted users (the quadratic cost is driven by length, so a strict byte limit such as a few KB sharply bounds worst-case CPU), enforce a per-request CPU/wall-clock timeout or run rendering in a separate worker process that can be killed, and rate-limit or queue Markdown-rendering endpoints to prevent a single client from saturating cores. As a more targeted filter, reject or pre-collapse inputs containing long runs of consecutive '[' characters. Trade-offs: byte limits may truncate legitimate long documents, timeouts/worker isolation add latency and operational complexity, and bracket-run filtering risks false positives on legitimate content, so prefer the version upgrade as 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 (PyPI package 'mistune', authored by lepture) is a pure-Python Markdown parser widely embedded in documentation tooling, note-taking apps, chat/comment systems, and web frameworks that render user-supplied Markdown to HTML. The vulnerability is an algorithmic-complexity issue (CWE-400, Uncontrolled Resource Consumption) rather than a memory-safety bug: the parse_link_text routine, responsible for matching the text portion of '[...]' link syntax, performs a regex search within a loop over nested/consecutive opening brackets. Because each loop iteration re-scans a large suffix of the input, total work grows quadratically with input length. This is the classic 'superlinear parsing' failure mode where worst-case adversarial input is cheap to produce but expensive to process, distinct from catastrophic-backtracking ReDoS in a single regex.
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
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
Remote, unauthenticated, low-complexity input with no interaction yields AV:N/AC:L/PR:N/UI:N; impact is availability-only (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:H
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, Mistune is vulnerable to a CPU exhaustion DoS due to superlinear (approximately O(n²)) behavior in parse_link_text. When parsing Markdown containing many consecutive [ characters, parse_link_text repeatedly scans the input using a regex search inside a loop. Each iteration re-scans a large portion of the remaining string, resulting in quadratic-time behavior. An attacker-controlled Markdown input can therefore trigger excessive CPU usage with a very small payload. This vulnerability is fixed in 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, a Python Markdown parser used in documentation systems, comment platforms, and content rendering applications, contains a denial-of-service vulnerability allowing unauthenticated attackers to consume 100% of a CPU core with a trivial payload. Any web application or API that processes untrusted user-supplied Markdown faces immediate availability risk; the attack requires no authentication, no user interaction, and minimal computational effort to trigger.
Implement server-side input validation to reject or truncate Markdown with excessive '[' sequences; apply per-endpoint rate limiting to slow down payload delivery; configure resource limits (CPU timeout, process quotas) on application containers; deploy WAF rules to detect and block payloads matching the attack pattern; consider disabling Markdown rendering on untrusted input if business logic allows; monitor CPU usage on production systems for anomalies suggesting active exploitation attempts.
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.
Denial of service in Mistune (the lepture Python Markdown parser) before 3.3.0 lets remote unauthenticated attackers exh
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
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
mistune.py in Mistune 0.7.4 allows XSS via an unexpected newline (such as in java\nscript:) or a crafted email address,
Path traversal in Mistune's Include plugin allows reading arbitrary files from the server filesystem when processing att
Unbounded recursion in Mistune's Include directive (all versions prior to 3.3.0) can be triggered by a pair of mutually-
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 3.3.0 through 3.3.3 allows unauthenticated remote attackers to exhaust CPU and stall reques
Predictable heading anchor ID generation in Mistune's toc plugin (all versions prior to 3.3.0) enables same-page navigat
In mistune through 2.0.2, support of inline markup is implemented by using regular expressions that can involve a high a
Same weakness CWE-400 – Uncontrolled Resource Consumption
View allSame technique Denial Of Service
View allVendor StatusVendor
SUSE
Severity: Important| Product | Status |
|---|---|
| SUSE Linux Enterprise Desktop 15 SP7 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP7 | Affected |
| SUSE Linux Enterprise Module for Package Hub 15 SP7 | Affected |
| SUSE Linux Enterprise Module for Python 3 15 SP7 | Affected |
| SUSE Linux Enterprise Server 15 SP7 | Affected |
| SUSE Linux Enterprise Server 16.0 | Affected |
| SUSE Linux Enterprise Server 16.1 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP7 | 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 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4-LTSS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5-LTSS | Affected |
| SUSE Linux Enterprise Module for Python 3 15 SP4 | Affected |
| SUSE Linux Enterprise Module for Python 3 15 SP5 | Affected |
| SUSE Linux Enterprise Module for Python 3 15 SP6 | Affected |
| SUSE Linux Enterprise Server 15 SP4 | Affected |
| SUSE Linux Enterprise Server 15 SP4-LTSS | Affected |
| SUSE Linux Enterprise Server 15 SP5 | Affected |
| SUSE Linux Enterprise Server 15 SP5-LTSS | Affected |
| SUSE Linux Enterprise Server 15 SP6 | Affected |
| SUSE Linux Enterprise Server 15 SP6-LTSS | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP6 | Affected |
| SUSE Manager Proxy 4.3 | Affected |
| SUSE Manager Retail Branch Server 4.3 | Affected |
| SUSE Manager Server 4.3 | Affected |
| SUSE Linux Enterprise Desktop 15 SP4 | Affected |
| SUSE Linux Enterprise Desktop 15 SP5 | Affected |
| SUSE Linux Enterprise Desktop 15 SP6 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4-ESPOS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP6 | Affected |
| SUSE Linux Enterprise Module for Package Hub 15 SP4 | Affected |
| SUSE Linux Enterprise Module for Package Hub 15 SP5 | Affected |
| SUSE Linux Enterprise Module for Package Hub 15 SP6 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP4 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP5 | Affected |
| openSUSE Leap 15.3 | Affected |
| openSUSE Leap 15.4 | Affected |
| openSUSE Leap 15.5 | Affected |
| openSUSE Leap 15.6 | Affected |
EUVD-2026-39007
GHSA-qcq2-496w-v96p
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB