CVE-2026-105829
ŚrednieCVSS 6.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 10 - wyżej niż 10% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Trwałe wykonanie skryptów w przeglądarkach użytkowników może prowadzić do kradzieży sesji, danych lub wykonywania działań w imieniu ofiar. Dotyczy to aplikacji renderujących Markdown z użyciem podatnej biblioteki.
Rekomendacja
Zaktualizuj League CommonMark do wersji 2.10.2 lub nowszej. Rozważ dodatkowe filtrowanie treści generowanych przez użytkowników.
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-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-86434Wysokie
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.
- 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 from 1.3.0 before 2.10.2 contains a cross-site scripting vulnerability that allows users posting Markdown to bypass the DisallowedRawHtml extension by ending raw HTML with a bare disallowed tag name. Attackers can place a lone <script or <iframe line followed by a block supplying attributes like src or onload, executing stored scripts in viewers' browsers under default GFM settings.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

