CVE-2026-86434
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 42 - wyżej niż 42% wszystkich znanych CVE
Streszczenie
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-105830Wysokie
league/commonmark w wersjach od 2.0.0 przed 2.10.2 zawiera podatność na odmowę usługi o złożoności kwadratowej w rozszerzeniu GitHub Flavored Markdown Table, w metodzie TableStartParser::tryStart(). Nieuwierzytelnieni atakujący mogą przesłać duży akapit linii bez znaków pipe i nie zaczynających się od liter, wymuszając powtarzane skanowanie całego bufora i wyczerpując CPU procesu PHP.
- CVE-2026-105829Średnie
League CommonMark od wersji 1.3.0 do 2.10.2 zawiera podatność cross-site scripting, która pozwala użytkownikom publikującym Markdown obejść rozszerzenie DisallowedRawHtml poprzez zakończenie surowego HTML gołą, niedozwoloną nazwą znacznika. Atakujący może umieścić samotną linię <script lub <iframe, po której następuje blok dostarczający atrybuty takie jak src lub onload, wykonując trwałe skrypty w przeglądarkach odbiorców przy domyślnych ustawieniach GFM.
- CVE-2024-58382Wysokie
league/commonmark przed wersją 2.6.0 zawiera podatności o złożoności czasowej wielomianowej w parsowaniu Markdown, które pozwalają atakującym na wywołanie odmowy usługi. Atakujący mogą wysyłać specjalnie spreparowane wejścia Markdown zaprojektowane w celu wywołania najgorszego przypadku wydajności, a wysyłanie wielu żądań równolegle wyczerpuje zasoby CPU i procesy PHP-FPM.
- 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.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

