CVE-2026-53427
NiskieCVSS 2.3Streszczenie
W bibliotece MDEx wykryto podatność na ataki XSS (stored i reflected) poprzez nieprawidłową neutralizację danych wejściowych w Markdown. Atakujący może wstrzyknąć dowolny kod HTML/JavaScript, który wykona się w przeglądarce każdego użytkownika wyświetlającego przetworzoną treść.
Ocena ryzyka
Ryzyko obejmuje kradzież sesji, przejęcie konta oraz inne ataki po stronie klienta. Atak nie wymaga uwierzytelnienia ani specjalnych uprawnień – wystarczy możliwość przesłania treści Markdown (np. w komentarzach, postach, wiki).
Rekomendacja
Należy niezwłocznie zaktualizować bibliotekę mdex do wersji 0.12.3 lub nowszej, a mdex_native do wersji 0.2.3 lub nowszej. Jeśli aktualizacja nie jest możliwa, wyłącz funkcję podświetlania składni i przekazywania pełnego info-stringa (render: [full_info_string: true]).
Inne podatności w MDEx
Zobacz wszystkie- CVE-2026-53428Średnie
Podatność w bibliotece mdex i mdex_native pozwala nieuwierzytelnionemu atakującemu na przeprowadzenie ataku DoS poprzez nieograniczoną alokację pamięci. Funkcja parse_highlight_lines w komponencie LumisAdapter rozszerza zakres linii z bloku kodu bez kontroli górnego limitu, co prowadzi do alokacji ogromnych wektorów. Wystarczy przesłać Markdown z zakresem 1-2000000000, aby wyczerpać pamięć hosta i zatrzymać proces BEAM.
- CVE-2026-54889Średnie
Podatność XSS w bibliotece mdex dla Elixira pozwala atakującemu na wstrzyknięcie kodu JavaScript poprzez nieprawidłową walidację schematów URL w przetwarzaniu Markdown do Quill Delta. Atakujący może umieścić złośliwy link z schematem javascript: w tekście Markdown, który zostanie bez zmian skopiowany do atrybutu Delta, a następnie wykonany w przeglądarce ofiary po renderowaniu do HTML.
- CVE-2026-54888Średnie
Podatność w bibliotece mdex (oraz mdex_native) umożliwia atak DoS poprzez dostarczenie głęboko zagnieżdżonego dokumentu Markdown. Rekurencyjne funkcje konwertujące nie sprawdzają maksymalnej głębokości, co prowadzi do przepełnienia stosu C i awarii całego węzła BEAM.
- CVE-2026-53429Średnie
W bibliotekach mdex i mdex_native wykryto podatność polegającą na braku zwalniania pamięci po zakończeniu jej użytkowania. Atakujący może wysłać dokument zawierający znaczniki escaped-tag, co powoduje trwały wyciek pamięci w natywnym kodzie renderującym (Rust NIF). Każde renderowanie takiego dokumentu prowadzi do nieograniczonego wzrostu zużycia pamięci, aż do wyczerpania zasobów i awarii procesu BEAM.
- CVE-2026-53426Wysokie
Podatność w bibliotece MDEx dla Elixira/Erlanga pozwala na wyczerpanie tablicy atomów poprzez przetworzenie specjalnie spreparowanego dokumentu JSON. Funkcja json_to_node/1 tworzy nowe atomy dla każdej unikalnej wartości node_type, które nie są usuwane przez garbage collector, co prowadzi do awarii całej maszyny wirtualnej BEAM.
Oryginalny opis (angielski, źródło NVD)
Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') vulnerability in leandrocp MDEx allows stored or reflected cross-site scripting via attacker-controlled Markdown. When syntax highlighting and full info-string forwarding (render: [full_info_string: true]) are enabled, the Lumis adapter copies the value of a code fence's highlight_lines_class info-string attribute, unescaped, into the class attribute of every rendered line. comrak_nif::lumis_adapter::LumisAdapter::parse_custom_attributes in native/comrak_nif/src/lumis_adapter.rs shlex-parses the info string and stores each key=value pair verbatim, highlight_lines_config pulls highlight_lines_class into the per-line class value, and write_highlighted interpolates that value directly into the class attribute of the per-line <div>. A single-quoted shell token preserves an inner double quote through shlex parsing, so a value such as '"><script>alert(1)</script>' terminates the class attribute early and the markup that follows is emitted as live HTML. An attacker who can submit Markdown (through comments, posts, wiki pages, documentation, or any user-generated content) can inject arbitrary HTML and JavaScript that runs in the browser of every user who views the rendered output, enabling session theft, account takeover, and other client-side attacks. No authentication or special privileges are required. The vulnerable native code originally shipped inside mdex (in native/comrak_nif/src/lumis_adapter.rs) and was later extracted into the separate mdex_native package (native/mdex_native_nif/src/lumis_adapter.rs), where it remains unpatched. This issue affects mdex from 0.11.3 before 0.12.3, and mdex_native from 0.1.0 before 0.2.3.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

