Skip to main content

Mistune CVE-2026-121437

| EUVDEUVD-2026-115859 HIGH
Inefficient Algorithmic Complexity (CWE-407)
2026-11-03 VulnCheck GHSA-xr4w-hw52-gjv9
8.7
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Send small markdown payload '(*a_b)×N' to rendering endpoint
  2. Exploit
    Inline parser enters _process_emphasis_delimiters
  3. Execution
    O(n²) index-fixup loop runs ~n²/2 times
  4. Impact
    CPU-bound worker stalls seconds, denying service

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V2 - Validation and Business Logic Algorithmic complexity limits
Exploitation Conditions

The only prerequisite is that the target application passes attacker-controlled input to mistune's markdown renderer and version is >=3.3.0 and <3.3.4; the advisory shows it triggers with the DEFAULT renderer and NO plugins via mistune.create_markdown(). No authentication, no user interaction, and no non-default configuration are required (PR:N/UI:N). Limiting factors for defenders: exploitation requires an exposed code path that renders untrusted markdown synchronously in a request worker, and there must be no upstream input-size cap - the built-in max_emphasis_depth setting does NOT limit this because it caps produced-node depth and is checked after the costly fix-up loop. Impact is CPU exhaustion only (worker stall), not code execution or data access.

Impact

This is a genuine, easily-triggered availability risk rather than an inflated high-CVSS score. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) shows remote, low-complexity, unauthenticated triggering with no user interaction, and impact is strictly availability (VA:H; VC:N/VI:N - no data exposure or tampering), consistent with the CWE-407/CWE-400 algorithmic-complexity DoS. The vendor advisory includes a working proof-of-concept that was reproduced against the 3.3.3 tag and verified fixed in 3.3.4, so exploitability is well established; however there is NO CISA KEV listing and NO EPSS score in the provided data, so there is no evidence of active in-the-wild exploitation, and widespread opportunistic exploitation cannot be inferred. The vuln.today decision label is 'this_week' (not act_now/emergency), aligning the signals: a confirmed, cheap-to-trigger worker-stall DoS that warrants prompt patching but is availability-only. One nuance worth verifying operationally: impact is per-request worker stall (64KB → ~8s; the '*a**b' variant 80KB → ~20.9s), so real-world severity scales with how exposed and how concurrent the affected markdown-rendering endpoint is; the advisory also notes the existing max_emphasis_depth cap does NOT mitigate this, as it bounds node depth checked after the fix-up work.

Exploit ScenarioDerived

An application that renders untrusted user-supplied markdown through mistune's default renderer (e.g. comments, wiki pages, chat or document previews) exposes an unauthenticated endpoint. An attacker submits a single small document of repeated '*a_b' patterns (e.g. 16-64KB), driving the O(n²) emphasis-delimiter index-fixup loop and pinning the request worker for seconds per request; repeated requests exhaust worker capacity and deny service. A working Python PoC is published in the GHSA advisory and was verified against the 3.3.3 release.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Nov 03, 2026

Denial of service in Mistune 3.3.0 through 3.3.3 allows unauthenticated remote attackers to exhaust CPU and stall request workers by submitting small markdown documents that trigger quadratic-time emphasis delimiter processing. The default renderer with no plugins is affected, with repeated "*a_b" driving an O(n²) index-fixup loop; the advisory measured 64KB at roughly 8.2 seconds and a worse "*a**b" pattern at 20.9 seconds for 80KB. The advisory includes a proof-of-concept payload that the reporter reproduced against 3.3.3, no CISA KEV entry or other confirmation of active exploitation is provided, and the vendor has released 3.3.4 as the fix.

RemediationAI

Upgrade to Mistune 3.3.4 or later; the vendor advisory identifies 3.3.4 as the first patched version for the affected >=3.3.0,<3.3.4 range and points to fix commit b4dd3284e52ec741ed9a227db29ade9017828e90 (https://github.com/lepture/mistune/security/advisories/GHSA-qp42-r9j6-83g9). The advisory does not describe a vendor workaround, so upgrading is the complete fix, and the built-in max_emphasis_depth setting should not be treated as a mitigation because the advisory shows it caps produced-node depth only after the costly fix-up loop and does not reduce the number of emphasis matches. For environments that cannot upgrade immediately, the evidence indicates the prerequisite is an application that synchronously renders untrusted markdown with no upstream input-size cap, so limiting request or markdown body size and isolating rendering workers can reduce blast radius, but these are deployment-specific controls rather than a vendor-supported fix and may reject legitimate large documents or abort long-running renders.

Affected VersionsENISA

mistune 3.3.0 <3.3.4

Affected Packages

euvd mistune fix: 3.3.4

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Mistune's inline parser tokenizes emphasis using a delimiter list and then _process_emphasis_delimiters matches opener/closer pairs. In affected releases, each match with removed delimiters executes a full for delimiter in delimiters: index-fixup loop (inline_parser.py line 725), so O(n) matches produce O(n²) work; the advisory classifies this as CWE-407 inefficient algorithmic complexity (also CWE-400 uncontrolled resource consumption). The CommonMark reference implementation uses a linked list with O(1) removal, while Mistune's array rewrite reintroduced the full-list scan. The max_emphasis_depth guard caps produced-node depth and is checked after the fixup work, so it does not reduce the match count. The affected CPE is cpe:2.3:a:lepture:mistune:*:*:*:*:*:*:*:*, corresponding to versions >=3.3.0,<3.3.4, and the fix commit b4dd3284e52ec741ed9a227db29ade9017828e90 introduces indexed delimiter tracking to avoid rewriting every delimiter after a splice.

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

Vendor (VulnCheck) PRIMARY 8.7 HIGH
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
vuln.today AI 7.5 HIGH

Remote unauthenticated triggering with no interaction against default-configuration markdown rendering (AV:N/AC:L/PR:N/UI:N); impact is CPU-exhaustion DoS only, so A:H with C:N/I:N.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

Mistune from 3.3.0 before 3.3.4 contains a denial of service vulnerability that allows remote attackers to exhaust CPU through quadratic-time emphasis delimiter processing. Attackers can submit small markdown documents with repeated patterns like "*a_b" to trigger an O(n²) index-fixup loop, stalling workers for seconds.

Technical POC Analysis

CWE-407 (Inefficient Algorithmic Complexity).

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

A high-severity denial-of-service vulnerability in Mistune versions 3.3.0 through 3.3.3 allows unauthenticated remote attackers to exhaust CPU and stall request workers by submitting small, crafted markdown documents. Any service that renders user-supplied markdown using an affected version is at risk of availability disruptions, which could impact customer-facing platforms and internal tools. The vendor has released a fixed version, and no active exploitation has been confirmed.

Business Impact: Medium
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

Prevalence
Medium
popular Python markdown library, common dependency but not in every environment
Social Media
1
Sightings
Data Quality
4 sources
Confidence: Medium

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS N/A
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
Medium
Technical Impact
Partial

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

CVE-2026-49851 HIGH POC
8.7 Jun 24

Uncontrolled CPU consumption in Mistune, a Python Markdown parser, allows remote unauthenticated attackers to cause deni

CVE-2026-59928 HIGH POC
7.5 Jul 08

Denial of service in Mistune (the lepture Python Markdown parser) before 3.3.0 lets remote unauthenticated attackers exh

CVE-2026-59922 HIGH POC
7.5 Jul 08

Denial of service in Mistune, a Python Markdown parser, affects all versions prior to 3.3.0 when the strikethrough, mark

CVE-2026-59925 HIGH POC
7.5 Jul 08

Denial of service in Mistune, a widely used pure-Python Markdown parser, affects all versions prior to 3.3.0 where the d

CVE-2026-59923 MEDIUM POC
6.1 Jul 08

Cross-site scripting in Mistune Python Markdown parser (all versions before 3.3.0) allows attacker-controlled Markdown c

CVE-2026-59929 MEDIUM POC
6.1 Jul 08

Cross-site scripting in Mistune prior to 3.3.0 stems from an incomplete URI scheme blocklist in the `safe_url` filter, p

CVE-2017-15612 MEDIUM POC
6.1 Oct 19

mistune.py in Mistune 0.7.4 allows XSS via an unexpected newline (such as in java\nscript:) or a crafted email address,

CVE-2026-59924 MEDIUM POC
5.9 Jul 08

Path traversal in Mistune's Include plugin allows reading arbitrary files from the server filesystem when processing att

CVE-2026-59927 MEDIUM POC
5.3 Jul 08

Unbounded recursion in Mistune's Include directive (all versions prior to 3.3.0) can be triggered by a pair of mutually-

CVE-2026-115347 HIGH
8.7 Oct 22

Quadratic denial of service in Mistune's Markdown parser (parse_link_text) affects versions 3.2.0, 3.2.1 and main prior

CVE-2026-59930 MEDIUM POC
4.3 Jul 08

Predictable heading anchor ID generation in Mistune's toc plugin (all versions prior to 3.3.0) enables same-page navigat

CVE-2022-34749 HIGH
7.5 Jul 25

In mistune through 2.0.2, support of inline markup is implemented by using regular expressions that can involve a high a

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy