p PatchFirst

CVE-2026-86434

CVE-2026-86434 · commonmark 2.0.0 through 2.8.3 Denial of Service via Slug Collision

This page contains facts from public vulnerability sources. Check the original advisory before updating.

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.

CVSS 8.7 · High · EPSS 0.5% · Fix available

Published
Updated

Stack: system · php

Affected products and versions

  • commonmark

    Versions
    • ≥ 2.0.0, < 2.8.4: Affected (semver)
    • 2.8.4: Not affected (semver)

    Update to 2.8.4

  • php-league-commonmark Debian:12

    Versions
    • 2.10.0-1
    • 2.10.1-1
    • 2.10.3-1
    • 2.3.9-1
    • 2.3.9-1+deb12u1
    • 2.4.0-1
    • 2.4.1-1
    • 2.4.2-1
    • 2.4.2-2
    • 2.5.0-1
    • 2.5.1-1
    • 2.5.3-1
    • 2.6.0-1
    • 2.6.1-1
    • 2.6.1-2
    • 2.6.2-1
    • 2.7.0-1
    • 2.7.1-1
    • 2.7.1-2
    • 2.8.0-1
    • 2.8.1-1
    • 2.8.2-1
    • 2.8.2-2
    • 2.8.3-1
    • 2.9.0-1
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

  • php-league-commonmark Debian:13

    Versions
    • 2.10.0-1
    • 2.10.1-1
    • 2.10.3-1
    • 2.7.0-1
    • 2.7.0-1+deb13u1
    • 2.7.1-1
    • 2.7.1-2
    • 2.8.0-1
    • 2.8.1-1
    • 2.8.2-1
    • 2.8.2-2
    • 2.8.3-1
    • 2.9.0-1
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

  • php-league-commonmark Debian:14

    Versions
    • 2.7.0-1
    • 2.7.1-1
    • 2.7.1-2
    • 2.8.0-1
    • 2.8.1-1
    • 2.8.2-1
    • 2.8.2-2
    • 2.8.3-1
    Affected ranges
    • ECOSYSTEM: < 2.9.0-1

    Update to 2.9.0-1

  • league/commonmark Packagist

    Versions
    • 2.0.0
    • 2.0.1
    • 2.0.2
    • 2.0.3
    • 2.0.4
    • 2.1.0
    • 2.1.1
    • 2.1.2
    • 2.1.3
    • 2.2.0
    • 2.2.1
    • 2.2.2
    • 2.2.3
    • 2.2.4
    • 2.2.5
    • 2.3.0
    • 2.3.1
    • 2.3.2
    • 2.3.3
    • 2.3.4
    • 2.3.5
    • 2.3.6
    • 2.3.7
    • 2.3.8
    • 2.3.9
    • 2.4.0
    • 2.4.1
    • 2.4.2
    • 2.4.3
    • 2.4.4
    • 2.5.0
    • 2.5.1
    • 2.5.2
    • 2.5.3
    • 2.6.0
    • 2.6.1
    • 2.6.2
    • 2.7.0
    • 2.7.1
    • 2.8.0
    • 2.8.1
    • 2.8.2
    • 2.8.3
    Affected ranges
    • ECOSYSTEM: ≥ 2.0.0, < 2.9.0

    Update to 2.9.0

  • php-league-commonmark Ubuntu:Pro:20.04:LTS

    Versions
    • 1.1.2-1
    • 1.2.0-1
    • 1.3.0-1
    • 1.3.1-1
    • 1.3.1-1ubuntu2
    • 1.3.1-1ubuntu2+esm1
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

  • php-league-commonmark Ubuntu:Pro:22.04:LTS

    Versions
    • 1.5.7-2build1
    • 1.6.6-1build1
    • 1.6.7-1
    • 1.6.7-1ubuntu0.1~esm1
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

  • php-league-commonmark Ubuntu:Pro:24.04:LTS

    Versions
    • 2.3.9-1
    • 2.4.1-1
    • 2.4.2-1
    • 2.4.2-2
    • 2.4.2-2ubuntu0.1~esm1
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

  • php-league-commonmark Ubuntu:26.04:LTS

    Versions
    • 2.7.0-1
    • 2.7.1-2
    • 2.8.0-1
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

Original sources

Check your server →