Skip to content
OpenAdvisories
High · 7.5 CVE-2026-86434 EUVD-2026-72392GHSA-jcmh-chhq-rh2xGHSA-mh25-x5hq-wrqp

commonmark 2.0.0 through 2.8.3 Denial of Service via Slug Collision

Published Sep 7, 2026 · Updated Oct 8, 2026 · Assigned by VulnCheck

Description

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.

Affected products

VendorProductAffectedFixed
thephpleague commonmark 2.0.0 – < 2.8.4 2.8.4

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 php-league-commonmark 2.9.0-1 —
Debian 13 php-league-commonmark No fix yet —
Debian 12 php-league-commonmark No fix yet —
ReleasePackageFixed inAdvisory
Ubuntu 26.04 LTS php-league-commonmark No fix yet —
Show 3 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu Pro 24.04 LTS php-league-commonmark No fix yet —
Ubuntu Pro 22.04 LTS php-league-commonmark No fix yet —
Ubuntu Pro 20.04 LTS php-league-commonmark No fix yet —

Affected packages

EcosystemPackageAffectedFixedRecord
Packagist league/commonmark >= 2.0.0, < 2.9.0 2.9.0 GHSA-mh25-x5hq-wrqp

References