CVE-2026-86434
WysokieCVSS 7.5Streszczenie
Podatność na odmowę usługi w league/commonmark w wersjach >= 2.0.0 i < 2.8.4 (poprawiona w 2.9.0) w funkcji UniqueSlugNormalizer::normalize(). Przy kolizji slugów wyszukiwanie sufiksu zaczyna się od 1, co prowadzi do złożoności O(K^2) dla wielu nagłówków o tym samym slugu. Ścieżka jest osiągalna, gdy zarejestrowano HeadingPermalinkExtension, FootnoteExtension lub TableOfContentsExtension.
Ocena ryzyka
Nieuwierzytelniony atakujący może wysłać mały dokument Markdown z wieloma nagłówkami o tym samym slugu, powodując nadmierne zużycie CPU i odmowę usługi.
Rekomendacja
Zaktualizuj league/commonmark do wersji 2.9.0 lub nowszej.
Inne podatności w league/commonmark
Zobacz wszystkie- CVE-2026-86431Wysokie
Podatność na cross-site scripting (XSS) w AttributesExtension biblioteki league/commonmark w wersjach >= 2.7.0 i < 2.9.1. Poprzedzenie nazwy atrybutu pojedynczym bajtem U+000C (np. {\x0Conclick="alert(1)"}) omija filtr 'on*' w AttributesHelper::filterAttributes(), ponieważ PHP-owa funkcja trim() nie usuwa U+000C. Atrybut jest zapisywany dosłownie w wyniku, gdzie przeglądarka interpretuje go jako prawdziwy handler zdarzeń. Ten sam prefiks omija również sprawdzenie allow_unsafe_links, umożliwiając użycie javascript: URI w atrybutach href/src nawet gdy allow_unsafe_links jest false.
- CVE-2026-86430Wysokie
W bibliotece league/commonmark przed wersją 2.9.1 występuje wiele podatności na odmowę usługi w wykrywaniu bloków kodu, wyszukiwaniu etykiet linków referencyjnych oraz przetwarzaniu delimiterów emfazy, które wykonują ponadliniową pracę na spreparowanych danych wejściowych. Atakujący mogą wysyłać specjalnie spreparowany Markdown z długimi ciągami backticków, zagnieżdżonymi nawiasami lub sekwencjami delimiterów, co powoduje nadmierne zużycie CPU i uniemożliwia realizację prawidłowych żądań.
- CVE-2026-86429Wysokie
Biblioteka league/commonmark w wersjach >= 1.5.0 i < 2.9.1 zawiera kwadratową złożoność parsowania w rozszerzeniach SmartPunctExtension i AttributesExtension. Gdy którekolwiek z tych rozszerzeń jest jawnie zarejestrowane w środowisku (nie są domyślnie włączone i są wykluczone ze standardowych konwerterów CommonMark i GitHub-Flavored Markdown), nieuwierzytelniony atakujący może wysłać małe, specjalnie spreparowane dokumenty Markdown, takie jak tekst z nieparzystymi cudzysłowami, ciągłe bloki atrybutów lub powtarzające się atrybuty klas, aby wywołać nieproporcjonalne zużycie CPU i spowodować odmowę usługi.
- CVE-2026-71488Wysokie
Podatność w bibliotece PHP league/commonmark (wersje od 0.6.0 do 2.9.0) powoduje kwadratową złożoność czasową podczas parsowania specjalnie spreparowanych linii Markdown. Atakujący może wysłać mały żądanie, które zużyje nieproporcjonalnie dużo CPU.
- CVE-2026-71478Średnie
league/commonmark to biblioteka PHP do parsowania i renderowania CommonMark Markdown. Od wersji 1.5.0 do 2.9.0 filtr niebezpiecznych linków href i src w AttributesExtension może zostać ominięty przez osadzenie bajtów kontrolnych, takich jak tabulator, powrót karetki, znak nowej linii lub wiodący znak kontrolny C0, w adresie URL javascript:, które przeglądarki odrzucają przed parsowaniem schematu, co powoduje, że przeglądarka nadal wykonuje skrypt nawet gdy filtr niebezpiecznych linków jest włączony. Problem naprawiono w wersji 2.9.0.
Oryginalny opis (angielski, źródło NVD)
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.

