Skip to main content

league/commonmark EUVDEUVD-2026-72390

| CVE-2026-86432 MEDIUM
Asymmetric Resource Consumption (Amplification) (CWE-405)
2026-09-07 VulnCheck GHSA-f58g-hmv8-g97m
6.9
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Identify application endpoint accepting Markdown-to-XML conversion
  2. Delivery
    Craft deeply nested Markdown blockquote payload
  3. Exploit
    Submit payload via HTTP request
  4. Execution
    XmlRenderer generates O(n²) indented XML output
  5. Persist
    Server memory exhausted across repeated requests
  6. Impact
    Denial of service for concurrent users

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V2 - Validation and Business Logic Asymmetric resource consumption control
Exploitation Conditions

Exploitation requires the target application to route untrusted Markdown input through the opt-in XmlRenderer or MarkdownToXmlConverter code path - this is not the default rendering mode in league/commonmark (the default is HtmlRenderer). Applications using only HTML rendering are entirely unaffected. When the XmlRenderer path does accept untrusted input, no authentication or elevated privileges are required; the attack is fully network-accessible and the payload is trivial to construct. Impact depth is further bounded by the max_nesting_level parser setting (default allows substantial depth) for parser-produced ASTs, but applications that construct ASTs programmatically and pass them directly to XmlRenderer::renderDocument() have no such bound. What limits exploitation: the opt-in nature of XmlRenderer is the primary limiting factor; impact is gradual resource exhaustion rather than an immediate crash, requiring sustained or repeated requests to achieve denial of service.

Impact

The CVSS 4.0 score of 6.9 with VA:L reflects the limited but real blast radius: no confidentiality or integrity exposure, and an availability impact that manifests as gradual resource exhaustion rather than an immediate hard crash, which is why the GHSA advisory rates this Medium rather than High. The network-reachable, unauthenticated, low-complexity attack surface (AV:N/AC:L/PR:N/UI:N) means any exposed endpoint is trivially targetable, but the vendor's use of AT:N in the 4.0 vector arguably overstates universality - XmlRenderer is an opt-in path, not the default, which meaningfully limits the affected deployment population. Repeated moderate-depth payloads rather than a single maximum-depth request could be sufficient for sustained resource pressure; even a mid-sized PHP CMS operator in tczew that exposes Markdown-to-XML conversion for documentation or content workflows should assess whether that endpoint receives untrusted input before dismissing this as low priority. No EPSS score or CISA KEV listing is present in the available data, so exploitation likelihood and active exploitation status cannot be independently confirmed; no public exploit code has been identified at time of analysis.

Exploit ScenarioDerived

An attacker submits a single crafted HTTP POST containing thousands of levels of nested Markdown blockquotes (e.g., str_repeat('> ', 5000) . "x") to an application endpoint that passes Markdown through MarkdownToXmlConverter. The XmlRenderer allocates O(n²) memory generating the indented XML output; with repeated requests the server exhausts available PHP memory or output buffer limits, causing request failures or process crashes that deny service to legitimate users.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Sep 07, 2026

Quadratic memory and output amplification in league/commonmark's XmlRenderer affects all 2.x releases from 2.0.0 through at least 2.8.x, enabling remote unauthenticated denial of service against PHP applications that convert untrusted Markdown to XML. The renderer emits depth-proportional indentation for every XML tag, causing O(n²) byte growth in both output size and memory allocation for deeply nested structures - reachable with as little as a single line of nested blockquotes. No public exploit has been identified at time of analysis, and exploitation is limited to applications using the opt-in XmlRenderer or MarkdownToXmlConverter code path.

RemediationAI

Upgrade league/commonmark to version 2.9.0 or later, which contains the fix per commit b5ac8c3947ca81844e85a09c7e0a5b4148bde2e1. Note the version discrepancy between the CVE description (2.8.4) and the GHSA advisory (2.9.0) - target 2.9.0 to be certain. If immediate upgrade is not possible, apply the following compensating controls in combination: lower max_nesting_level to a conservative value such as 10-20 to limit parser-produced tree depth, noting this does not protect against programmatically constructed ASTs passed directly to XmlRenderer; enforce input byte-length limits before any Markdown-to-XML conversion to bound the maximum depth reachable per request; switch to HtmlRenderer for all untrusted Markdown where XML output is not strictly required, as the HTML renderer does not use depth-proportional indentation; and apply PHP memory_limit and output-size constraints at the runtime or web-server level to contain per-request resource consumption. Full workaround guidance is available at https://github.com/thephpleague/commonmark/security/advisories/GHSA-mj63-m3rc-8ppr.

Affected VersionsENISA

commonmark 2.0.0 <2.8.4

Affected Packages

euvd commonmark fix: 2.8.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

CWE-405 (Asymmetric Resource Consumption - Amplification) manifests in the XmlRenderer component of league/commonmark, a PHP Markdown parsing and rendering library published by The PHP League (CPE: cpe:2.3:a:thephpleague:commonmark:*:*:*:*:*:*:*:*). The renderer pretty-prints XML output by prepending depth-proportional whitespace indentation to every opening and closing tag. For a parse tree of depth n, the cumulative indentation alone grows as O(n²) bytes, consuming proportional memory and producing proportionally amplified output. The attack surface is reachable via the public MarkdownToXmlConverter API or by passing an attacker-influenced AST directly to XmlRenderer::renderDocument(). The parser's max_nesting_level configuration option bounds depth for parser-produced trees, but does not constrain ASTs built programmatically and handed directly to the renderer. The XmlRenderer was introduced in 2.0.0-beta1 (June 2021) and the 1.x branch has no XML rendering capability and is entirely unaffected.

Know when Commonmark 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 6.9 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
vuln.today AI 5.3 MEDIUM

Network-reachable, unauthenticated, zero-complexity attack once the endpoint exists; only availability impact at low severity as exhaustion is gradual.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/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
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Sep 07, 2026 - 14:02 EUVD
CVE Published
Sep 07, 2026 - 12:53 cve.org
MEDIUM 6.9

DescriptionCVE.org

commonmark versions from 2.0.0 before 2.8.4 contain a denial of service vulnerability in XmlRenderer that emits depth-proportional indentation for every XML tag. Attackers can provide deeply nested Markdown or AST structures to cause quadratic memory consumption and output amplification, exhausting server resources.

Threat Intelligence Overview

EPSS Score
0.2%
Top 84% exploitable
Prevalence
High
widely used PHP Markdown parser, core to Laravel and many PHP CMSes
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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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· derived
High

Priority Score

34
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +34
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-2019-10010 MEDIUM POC
6.1 Mar 24

Cross-site scripting (XSS) vulnerability in the PHP League CommonMark library before 0.18.3 allows remote attackers to i

CVE-2018-20583 MEDIUM POC
6.1 Dec 30

Cross-site scripting (XSS) vulnerability in the PHP League CommonMark library versions 0.15.6 through 0.18.x before 0.18

CVE-2026-86434 HIGH
8.7 Sep 07

Quadratic CPU exhaustion in league/commonmark 2.0.0-2.8.3 allows unauthenticated remote attackers to deny service by sub

CVE-2026-86433 HIGH
8.7 Sep 07

Quadratic-time algorithmic complexity in league/commonmark's Attributes extension exposes PHP applications to remote den

CVE-2026-86429 HIGH
8.7 Sep 07

Quadratic parsing complexity in league/commonmark (thephpleague/commonmark, versions ≥1.5.0 and <2.9.1) allows unauthent

CVE-2026-86430 HIGH
8.7 Sep 07

Three independent super-linear parsing paths in league/commonmark before 2.9.1 allow unauthenticated remote attackers to

CVE-2026-86435 HIGH
8.7 Sep 07

Quadratic-blowup denial of service in league/commonmark's Footnote extension allows remote unauthenticated attackers to

CVE-2026-86428 HIGH
8.7 Sep 07

Quadratic CPU exhaustion in league/commonmark's optional AttributesExtension (versions 1.5.0 through 2.9.2) allows unaut

CVE-2026-105830 HIGH
8.7 Oct 08

Quadratic-time denial of service in league/commonmark 2.0.0 through 2.10.1 lets unauthenticated remote attackers exhaust

CVE-2026-86431 MEDIUM
6.9 Sep 07

Cross-site scripting in league/commonmark 2.7.0-2.9.0 allows unauthenticated attackers to inject arbitrary JavaScript in

CVE-2026-30838 MEDIUM
6.1 Mar 07

The DisallowedRawHtml extension in PHP Commonmark (league/commonmark) versions prior to 2.8.1 can be bypassed by injecti

CVE-2026-105829 MEDIUM
5.3 Oct 08

Stored cross-site scripting in league/commonmark from 1.3.0 through 2.10.1 lets any user who can post Markdown bypass th

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