Skip to main content
← All vulnerabilities
CVE-2026-86434GHSA-MH25-X5HQ-WRQP

commonmark 2.0.0 through 2.8.3 Denial of Service via Slug Collision

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 2.8.4, 2.9.0
None on Exploit-DB, Metasploit or GitHub
  • Exploitation: none
  • Automatable: yes
  • Technical impact: partial

Summary

league/commonmark versions >= 2.0.0 and < 2.8.4 (patched in 2.9.0) contain a denial of service vulnerability in UniqueSlugNormalizer::normalize(), which restarts its numeric-suffix search from 1 on every slug collision, resulting in O(K^2) time complexity for K headings that collapse to the same base slug. The vulnerable path is reached when HeadingPermalinkExtension, FootnoteExtension, or TableOfContentsExtension is registered. An unauthenticated attacker can force many headings onto a single base slug (e.g., via empty ATX headings, identical heading text, or punctuation-only headings) in a small Markdown document, consuming excessive CPU and denying service.

Timeline

  1. CVE published
  2. CISA SSVC assessment

    Exploitation: none · Automatable: yes · Technical impact: partial

  3. Record last updated

Affected versions

  • thephpleague commonmark

    From 2.0.0 · fixed in 2.8.4

  • league/commonmarkPackagist

    From 2.0.0 · fixed in 2.9.0

References 2

GitHub · thephpleague/commonmark

vulncheck.com