Skip to main content

markdown2 CVE-2026-88753

| EUVDEUVD-2026-102186 HIGH
Uncontrolled Resource Consumption (CWE-400)
2026-10-15 mitre GHSA-vv85-hg53-g6g2
7.5
CVSS 3.1 · Vendor: mitre
View

Attack ChainAIDerived

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

  1. Access
    Submit crafted Markdown to app
  2. Delivery
    Reach extract_metadata() parser
  3. Exploit
    Trigger catastrophic regex backtracking
  4. Execution
    Exhaust CPU on worker thread
  5. Impact
    Denial of service / app unavailability

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

Exploitation requires the target application to invoke markdown2.extract_metadata() (i.e., metadata/front-matter parsing enabled) on attacker-supplied Markdown content, using markdown2 at or below v2.5.5. It does NOT affect applications that only render Markdown without metadata extraction. The limiting factor is reachability: although no authentication or user interaction is needed once the parsing endpoint is exposed, the vulnerable function is an opt-in feature rather than the default rendering path, and impact is confined to availability (CPU exhaustion), not data compromise.

Impact

Signals are moderate and internally consistent rather than alarming. The provided CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H, base 7.5) reflects a pure availability impact (CWE-400 resource exhaustion / ReDoS) with no confidentiality or integrity loss - the 'HIGH' rating is driven entirely by the A:H component, which is typical for DoS and should not be read as a code-execution-class threat. EPSS is low at 0.15% (4th percentile), and the CVE is NOT on CISA KEV, so there is no evidence of active or widespread exploitation. A gist reference (NanaSec) is present and, for a ReDoS, almost certainly contains proof-of-concept trigger input, so publicly available exploit code likely exists - but POC availability must not be conflated with active exploitation. No SSVC decision data was supplied. The key caveat the raw CVSS hides: the AV:N/PR:N/UI:N metrics assume the vulnerable extract_metadata() path is reachable with attacker-controlled Markdown, which is an opt-in metadata-parsing feature, not markdown2's default rendering path - so real-world reachability is narrower than the network-unauthenticated vector implies. Net: a genuine but lower-tier priority - patch in normal cycles, prioritize only if your application parses untrusted Markdown metadata.

Exploit ScenarioDerived

An application uses markdown2's extract_metadata() to parse front-matter/metadata from user-submitted Markdown (e.g., a CMS, wiki, or comment system). An attacker submits a small crafted Markdown document whose metadata section triggers catastrophic regular-expression backtracking, pinning a CPU core and hanging the worker. A public gist appears to provide the triggering input, lowering the attack-complexity (consistent with AC:L).

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.1% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 20, 2026

Regular-expression denial of service in trentm markdown2 through v2.5.5 lets remote attackers exhaust CPU by submitting a crafted Markdown document to any application that calls extract_metadata() (the front-matter/metadata parsing path). Exploitation is unauthenticated and requires no user interaction once such an endpoint is exposed, but the vulnerable function is an opt-in feature - pure rendering pipelines that never invoke metadata extraction are not affected. Impact is confined to availability; there is no public exploit code reported and EPSS is low (0.15%, 4th percentile), so risk is moderate rather than urgent.

RemediationAI

Upgrade markdown2 beyond v2.5.5 once a fixed release is published; no exact patched version is confirmed in the available data, so track the upstream trentm/markdown2 project and the advisory at https://gist.github.com/NanaSec/354b4188bbd7f4105008c7b8be49b0ba and https://nvd.nist.gov/vuln/detail/CVE-2026-88753 for the fix commit or release. Where an immediate upgrade is not possible, the most effective control is to stop passing untrusted input to extract_metadata() - disable metadata/front-matter extraction on user-submitted content, or pre-validate and cap the size of front-matter blocks before parsing (trade-off: legitimate large metadata headers will be rejected). Additionally, run Markdown parsing in a worker with a hard CPU/wall-clock timeout and process isolation so that a catastrophic-backtracking input is killed rather than stalling the request handler, and rate-limit or restrict access to endpoints that perform metadata extraction (trade-off: added latency and possible throttling of bulk content imports). Monitor for slow or hanging requests on Markdown ingestion paths as a detection signal.

Affected VersionsENISA

n/a n/a

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

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

Technical ContextAI · show details

markdown2 is a pure-Python Markdown implementation in which lib/markdown2.py provides an extract_metadata() helper that parses YAML-style front matter and metadata blocks at the top of a document. That parsing is driven by regular expressions whose patterns exhibit catastrophic backtracking (CWE-400: Uncontrolled Resource Consumption, expressed here as ReDoS), so a specially crafted Markdown document can force superlinear matching time and pin a CPU core for an extended period. Because extract_metadata() is invoked explicitly by the host application rather than as part of the default HTML rendering path, the root cause is a combination of an inefficient regex and the library exposing that routine to untrusted input. The CVSS:3.1 vector AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H reflects a remotely reachable, low-complexity, unauthenticated availability-only issue; CPE data in the feeds is a placeholder (n/a) and version detail comes from the advisory text (lib/markdown2.py through v2.5.5).

Know when Python 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 (mitre) 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

Remotely supplied Markdown reaches the parser with no auth or interaction (AV:N/PR:N/UI:N), a crafted input reliably triggers backtracking (AC:L), and only availability is affected (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

Primary rating from Vendor (mitre).

CVSS VectorVendor: mitre

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

Lifecycle Timeline

3
CVSS changed
Oct 20, 2026 - 03:23 NVD
7.5 (HIGH)
CVE Published
Oct 15, 2026 - 00:00 cve.org
HIGH 7.5
CVE Published
Oct 15, 2026 - 00:00 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

A Regular-Expression Denial of Service (ReDoS) in the Markdown2. extract_metadata() function (lib/markdown2.py) of trentm markdown2 through v2.5.5 allows attackers to cause a Denial of Service (DoS) via a crafted Markdown document.

Executive ViewAI

Why It Matters

The markdown2 Python library (versions through 2.5.5) contains a regular-expression denial-of-service flaw that can let a remote party exhaust CPU and degrade availability on any application exposing its optional metadata/front-matter extraction feature to untrusted Markdown. Because that path is opt-in, teams that only render Markdown are unaffected, and the absence of public exploit code plus a very low EPSS score make this a contained availability risk rather than an imminent compromise. Leadership should care about potential service disruption and the lack of a vendor fix, which shifts the burden onto configuration and input-handling controls until an update ships.

Business Impact: Medium
Compensating Controls

No vendor-released patch identified at time of analysis; interim mitigations are to disable or avoid extract_metadata() on untrusted input, restrict Markdown document size and complexity, enforce per-request CPU and timeout limits, rate-limit affected endpoints, and monitor for CPU exhaustion.

Threat Intelligence Overview

EPSS Score
0.1%
Top 96% exploitable
Prevalence
Medium
popular Python Markdown library, but vulnerable metadata feature is opt-in
Data Quality
5 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 0.1%
Patch available No
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· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
Medium

Priority Score

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

More in Python

View all
CVE-2025-24016 CRITICAL POC
9.9 Feb 10

Wazuh SIEM platform versions 4.4.0 through 4.9.0 contain an unsafe deserialization vulnerability in the DistributedAPI t

CVE-2025-27520 CRITICAL POC
9.8 Apr 04

BentoML version 1.4.2 and earlier contains an unauthenticated remote code execution vulnerability through insecure deser

CVE-2025-2945 CRITICAL POC
9.9 Apr 03

pgAdmin 4 contains critical remote code execution vulnerabilities in the Query Tool download and Cloud Deployment endpoi

CVE-2013-5093 MEDIUM POC
6.8 Sep 27

The renderLocalView function in render/views.py in graphite-web in Graphite 0.9.5 through 0.9.10 uses the pickle Python

CVE-2025-32375 CRITICAL POC
9.8 Apr 09

BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Rated critica

CVE-2014-0224 HIGH POC
7.4 Jun 05

OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph

CVE-2024-21644 HIGH POC
7.5 Jan 08

pyLoad download manager version prior to 0.5.0b3.dev77 exposes the Flask SECRET_KEY through an unauthenticated endpoint.

CVE-2026-33017 CRITICAL POC
9.3 Mar 17

Langflow (a visual LLM pipeline builder) contains a critical unauthenticated code execution vulnerability (CVE-2026-3301

CVE-2017-9462 HIGH POC
8.8 Jun 06

In Mercurial before 4.1.3, "hg serve --stdio" allows remote authenticated users to launch the Python debugger, and conse

CVE-2026-49869 CRITICAL POC
10.0 Jun 26

Unauthenticated remote code execution affects Kestra OSS (the open-source event-driven orchestration platform) prior to

CVE-2026-39987 CRITICAL POC
9.3 Apr 08

Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/

CVE-2024-21645 MEDIUM POC
5.3 Jan 08

pyLoad is the free and open-source Download Manager written in pure Python. Rated medium severity (CVSS 5.3), this vulne

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