league/commonmark: Quadratic-time denial of service when parsing crafted Markdown
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Denial of service
- Confidentiality · integrity · availability
- None · None · High
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-407.
Summary
league/commonmark is a PHP library for parsing and rendering CommonMark Markdown. From 0.6.0 until 2.9.0, specially crafted Markdown lines can cause the parser to have quadratic time complexity when converting, because several parsing paths repeatedly rescan growing portions of a line to translate between character positions and byte positions, and the Autolink extension can also copy and validate the remaining line at every URL-like prefix, allowing an attacker who can submit Markdown for conversion to consume disproportionate CPU time with a comparatively small request. This issue is fixed in 2.9.0.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- Yes
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| thephpleague | commonmark | 0.6.0 to before 2.9.0 | 2.9.0 | Patch available | CNA |
| — | league/commonmark (Packagist) | 0.6.0 to before 2.9.0 | 2.9.0 | Patch available | GHSA-2q4p-g7hv-5rgv |
- commonmark Vendorthephpleague Affected 0.6.0 to before 2.9.0 Fixed in 2.9.0 Patch available CNA
- league/commonmark (Packagist) Vendor— Affected 0.6.0 to before 2.9.0 Fixed in 2.9.0 Patch available GHSA-2q4p-g7hv-5rgv
CPE names Threatist (inferred) · 1
Inferred from how NVD named this product before; not given by a source.
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:thephpleague:commonmark:*:*:*:*:*:*:*:* | — | — | thephpleague |
- cpe:2.3:a:thephpleague:commonmark:*:*:*:*:*:*:*:* Versions — — ·thephpleague
Remediation
- Fix · CNA commonmark (thephpleague) Fixed in 2.9.0
- Fix · GHSA-2q4p-g7hv-5rgv league/commonmark (Packagist) Fixed in 2.9.0 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2026-71488
- 2026-10-03 Alias added: GHSA-2q4p-g7hv-5rgv
- 2026-10-28 EPSS moved to the 50th–90th percentile
References
Other 6
- https://github.com/thephpleague/commonmark/security/advisories/GHSA-2q4p-g7hv-5rgv
- https://github.com/thephpleague/commonmark/commit/a6ef6cdc308dfa39a34239c35818e75892a0e6a8
- https://github.com/thephpleague/commonmark/commit/a70979ea0d7d3377bd7127536748454a922bf5eb
- https://github.com/thephpleague/commonmark/commit/c97b02e5e652b992033b93ba5d6182f706343fc6
- https://github.com/thephpleague/commonmark/releases/tag/2.9.0
- https://github.com/thephpleague/commonmark
More thephpleague vulnerabilities
- TI-2026-69535 league/commonmark Quadratic DoS via TableStartParser CVSS 4.0HIGH 8.7
- TI-2026-50093 league/commonmark: AttributesExtension href/src unsafe-link filter bypass via embedded control bytes CVSS 3.1MEDIUM 6.1
- TI-2026-69534 Cross-site scripting in League CommonMark bypasses DisallowedRawHtml CVSS 4.0MEDIUM 5.3
- TI-2026-65445 Flysystem: WhitespacePathNormalizer's control-character (CorruptedPathDetected) check is… CVSS 3.1LOW 3.5
- TI-2021-12376 Time-of-check Time-of-use (TOCTOU) Race Condition in league/flysystem CVSS 3.1CRITICAL 9.8
- TI-2026-59143 commonmark 1.5.0 before 2.8.4 Denial of Service via Footnote CVSS 4.0HIGH 8.7
Sources
- CVE-2026-71488 · CVE Program
- CVE-2026-71488 · NVD
- FIRST EPSS
- GHSA-2q4p-g7hv-5rgv · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences