CVE-2026-71478
ŚrednieCVSS 6.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 16 - wyżej niż 16% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Ryzyko dla organizacji to możliwość wykonania niebezpiecznego kodu JavaScript w przeglądarce użytkownika, co może prowadzić do ataków XSS i kradzieży danych.
Rekomendacja
Zaleca się zaktualizowanie biblioteki league/commonmark do wersji 2.9.0 lub nowszej, która zawiera poprawkę tej podatności, oraz sprawdzenie konfiguracji filtrów bezpieczeństwa.
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-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.
Oryginalny opis (angielski, źródło NVD)
league/commonmark is a PHP library for parsing and rendering CommonMark Markdown. From 1.5.0 until 2.9.0, the AttributesExtension's href and src unsafe-link filter can be bypassed by embedding control bytes, such as a tab, carriage return, line feed, or leading C0 control character, in a javascript: URL that browsers discard before parsing the scheme, causing the browser to still execute the script even when the unsafe-link filter is enabled. This issue is fixed in 2.9.0.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

