Skip to main content

Mistune CVE-2026-59925

| EUVDEUVD-2026-42335 HIGH
Inefficient Algorithmic Complexity (CWE-407)
2026-07-08 GitHub_M GHSA-4j32-57v6-6g45 PYSEC-2026-2213
7.5
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Reach untrusted Markdown-rendering endpoint
  2. Delivery
    Submit crafted asterisk-emphasis payload
  3. Exploit
    Trigger quadratic emphasis scan in inline_parser.py
  4. Execution
    CPU exhaustion on worker thread
  5. Persist
    Repeat requests to starve workers
  6. Impact
    Service denial of service

Vulnerability Assessment

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

Exploitation requires only that the target application pass attacker-controlled text through Mistune's default inline parser - the vulnerable emphasis handling is active in default Mistune parsing, so no special plugin, renderer, or non-default option must be enabled. The concrete trigger is a Markdown payload containing long sequences of well-formed double-asterisk () or triple-asterisk (*) emphasis pairs around a character. The vector is unauthenticated and remote (PR:N, UI:N per CVSS). The main limiting factor is exposure rather than configuration: the flaw is only reachable where untrusted input is rendered, so applications that render only trusted, first-party Markdown are not practically exploitable, and input-size caps or parse timeouts placed ahead of the parser also limit the achievable impact. Affected only on Mistune versions below 3.3.0.

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) cleanly matches the described flaw: network-reachable, no authentication, no user interaction, and impact confined to availability with no confidentiality or integrity effect. This is a genuine but bounded risk - it is a single-request CPU-exhaustion DoS, not code execution or data exposure. No EPSS score, KEV entry, POC, or SSVC decision data was provided in the input, so exploitation probability cannot be quantified from signals; the assessment rests on the CVSS vector and description alone. The practical priority depends entirely on exposure: services that parse attacker-supplied Markdown (comments, chat, issue trackers, API bodies) inherit the full unauthenticated-DoS risk, whereas deployments that only render trusted first-party Markdown face little real-world danger despite the high base score. Because exploitation requires no special privileges and the trigger is trivial to construct, this should be treated as a real priority for any internet-facing Markdown-rendering endpoint.

Exploit ScenarioDerived

An attacker submits a comment, chat message, or API request containing a crafted Markdown string with a long sequence of /* emphasis pairs to any endpoint that renders Markdown with a vulnerable Mistune version. The server's parser enters quadratic processing, consuming excessive CPU on a single unauthenticated request (AV:N/AC:L/PR:N/UI:N); repeating the request across connections can exhaust worker threads and take the service offline. No public POC is referenced in the provided data.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Jul 08, 2026

Denial of service in Mistune, a widely used pure-Python Markdown parser, affects all versions prior to 3.3.0 where the default inline parser exhibits quadratic (O(n²)) behavior on long runs of well-formed double- or triple-asterisk emphasis pairs. Because the parser rescans forward for matching close markers from every candidate opening run, a small crafted Markdown payload forces disproportionate CPU consumption, exhausting resources on any service that renders untrusted Markdown. There is no public exploit identified at time of analysis and it is not listed in CISA KEV, but the low attack complexity and unauthenticated network vector make availability impact realistic against default configurations.

RemediationAI

Vendor-released patch: upgrade to Mistune 3.3.0 (https://github.com/lepture/mistune/releases/tag/v3.3.0), which rewrites the emphasis-scanning logic per commit 5de41fb8e527004dbc363e047a3c380c9288c74f; review the advisory at https://github.com/lepture/mistune/security/advisories/GHSA-4j32-57v6-6g45 for details. Update pinned dependencies (requirements.txt/poetry/pipenv) and rebuild any vendored copies. If immediate upgrade is not possible, apply compensating controls at the ingestion boundary: cap the maximum size/length of Markdown input accepted from untrusted sources (long asterisk runs require sizable input to be effective), and enforce a wall-clock timeout or run rendering in a separate worker/subprocess with a CPU limit so a single request cannot pin a thread - the trade-off is that legitimate very large documents may be rejected or truncated. Rate-limiting Markdown-rendering endpoints and placing them behind authentication reduces the blast radius but does not remove the flaw. These mitigations are stopgaps; upgrading to 3.3.0 is the durable fix.

Affected VersionsENISA

mistune < 3.3.0

Affected Packages

pypi mistune fix: 3.3.0

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 (project id lepture/mistune, per CPE cpe:2.3:a:lepture:mistune) is a fast, extensible Markdown-to-HTML library commonly embedded in Python web apps, documentation tooling, static site generators, and comment/wiki systems. The root cause is CWE-407 (Inefficient Algorithmic Complexity / algorithmic denial of service): the emphasis-handling logic in src/mistune/inline_parser.py treats every potential opening emphasis run as a starting point and scans forward looking for a matching closing marker. When input contains long sequences of nested or repeated /* emphasis pairs around a character, the number of scan operations grows quadratically with input length, so linearly larger input yields super-linear parsing time. This is the classic algorithmic-complexity DoS pattern (analogous to catastrophic backtracking) rather than a memory-corruption or injection flaw - hence the availability-only impact.

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 (GitHub_M) PRIMARY 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
vuln.today AI 7.5 HIGH

Unauthenticated remote input to a default parser (AV:N/AC:L/PR:N/UI:N) with a trivially crafted payload; impact is CPU-exhaustion DoS only, so C:N/I:N/A:H.

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
SUSE 5.3 MEDIUM
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
Red Hat 6.5 MEDIUM

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

Lifecycle Timeline

1
Patch available
Jul 08, 2026 - 18:02 EUVD

DescriptionCVE.org

Mistune is a Python Markdown parser with renderers and plugins. Prior to 3.3.0, long sequences of well-formed double-asterisk or triple-asterisk emphasis pairs around a character cause quadratic work in src/mistune/inline_parser.py because the parser scans forward for matching close markers from every potential opening run, allowing denial of service in default Mistune parsing. This issue is fixed in version 3.3.0.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 1 pypi packages depend on mistune (1 direct, 0 indirect)

Ecosystem-wide dependent count for version 3.3.0.

Executive ViewAI

Why It Matters

Mistune, a pure-Python Markdown parser widely used in web applications and content platforms, contains a denial-of-service vulnerability (CVE-2026-59925) in versions before 3.3.0 that can be triggered by crafted Markdown payloads. Services rendering untrusted user-supplied Markdown face resource exhaustion and availability risk. Immediate assessment and interim mitigations are required given the lack of vendor patch availability.

Business Impact: High
Compensating Controls

No public exploit identified at time of analysis. No vendor-released patch identified at time of analysis. Implement input validation (maximum payload size, enforce limits on nested structures), apply strict timeouts to Markdown rendering, deploy rate limiting on rendering endpoints, and establish CPU monitoring for anomalous spikes. For services where untrusted Markdown rendering is not essential, consider disabling or restricting Markdown functionality.

Threat Intelligence Overview

EPSS Score
0.3%
Top 74% exploitable
Prevalence
High
widely used Python Markdown library across many web apps and docs tooling
Threat Intel
1
1 sources
Exploit
POC
Public exploit code exists
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA MSRC Vendor GitHub

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 Yes
EPSS 0.3%
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
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

58
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
PoC: +20
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-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-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-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-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

CVE-2017-16876 MEDIUM
6.1 Dec 29

Cross-site scripting (XSS) vulnerability in the _keyify function in mistune.py in Mistune before 0.8.1 allows remote att

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-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-59926 MEDIUM
5.3 Jul 08

Cross-site scripting in Mistune (Python Markdown parser) prior to version 3.2.1 allows injection of arbitrary HTML attri

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-

Vendor 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

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