Skip to main content

Mistune EUVDEUVD-2026-39007

| CVE-2026-49851 HIGH
Uncontrolled Resource Consumption (CWE-400)
2026-06-24 GitHub_M GHSA-qcq2-496w-v96p
8.7
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Reach Markdown-rendering endpoint
  2. Delivery
    Submit small input of many '[' chars
  3. Exploit
    Trigger O(n²) re-scan in parse_link_text
  4. Execution
    Quadratic CPU consumed per request
  5. Persist
    Repeat/parallelize to exhaust cores
  6. Impact
    Denial 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.

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 – 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

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 (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

Vendor (GitHub_M) 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, 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.

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 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Red Hat 7.5 HIGH

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

1
Patch available
Jun 24, 2026 - 19:17 EUVD

DescriptionCVE.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
† 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 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.

Business Impact: High
Compensating Controls

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

EPSS Score
0.3%
Top 84% exploitable
Prevalence
High
popular Python Markdown library, widely embedded in web apps and docs tooling
Threat Intel
1
1 sources
Exploit
POC
Public exploit code exists
Data Quality
7 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
Out-of-Cycle
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

64
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
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-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-121437 HIGH
8.7 Nov 03

Denial of service in Mistune 3.3.0 through 3.3.3 allows unauthenticated remote attackers to exhaust CPU and stall reques

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

Vendor 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

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