CVE-2026-5388
KrytyczneCVSS 9.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 27 - wyżej niż 27% wszystkich znanych CVE
Streszczenie
justhtml przed wersją 1.15.0 zawiera wiele problemów bezpieczeństwa w pomocniczych funkcjach sanityzacji URL, serializacji HTML, przepuszczaniu Markdown (html_passthrough=True) oraz w niestandardowych politykach sanityzacji. Atakujący może ominąć sanityzację i wstrzyknąć aktywny HTML i JavaScript, np. przez zakodowane javascript: URL, backslashowe względne URL, łamanie znaczników, reintrodukcję </textarea> przez Markdown lub zachowane tagi <style>/<meta http-equiv=refresh>/<base href>.
Ocena ryzyka
Organizacja może być narażona na XSS i inne ataki, jeśli używa pomocniczych API, programistycznego DOM, html_passthrough=True lub niestandardowych polityk. Domyślna konfiguracja sanitize=True jest mniej podatna, ale nadal istnieje ryzyko w zaawansowanych scenariuszach.
Rekomendacja
Zaktualizuj justhtml do wersji 1.15.0 lub nowszej. Unikaj używania html_passthrough=True i niestandardowych polityk, chyba że są konieczne, i zawsze używaj domyślnej sanityzacji.
Inne podatności w justhtml
Zobacz wszystkie- CVE-2026-8445Krytyczne
justhtml w wersjach do 1.11.0 (poprawione w 1.12.0) nie wystarczająco escapuje znaki istotne dla HTML (nawiasy ostre) w węzłach tekstowych podczas konwersji do Markdown. Znaki takie jak < i > są zachowywane, co pozwala na wstrzyknięcie surowego HTML do wyniku Markdown, omijając sanityzację i potencjalnie prowadząc do XSS.
- CVE-2026-7808Krytyczne
justhtml przed wersją 1.16.0 zawiera wiele problemów z omijaniem sanityzacji HTML, które mogą pozwolić na przetrwanie aktywnej/niebezpiecznej treści (np. script lub style), potencjalnie prowadząc do XSS. Problemy dotyczą głównie zaawansowanego użycia, a nie domyślnej ścieżki JustHTML(..., sanitize=True).
- CVE-2026-9769Wysokie
justhtml do wersji 1.9.1 (poprawione w 1.10.0) jest podatne na niekontrolowaną rekurencję prowadzącą do odmowy usługi. Podczas konstrukcji JustHTML(), TreeBuilder.finish() wywołuje _populate_selectedcontent(), która rekurencyjnie przechodzi drzewo DOM bez ograniczenia głębokości. Atakujący może dostarczyć głęboko zagnieżdżone elementy (np. ~1000 zagnieżdżonych <div>) i przekroczyć limit rekurencji CPython, powodując nieobsłużony RecursionError.
- CVE-2026-8630Średnie
justhtml przed wersją 1.12.0 (wersje <= 1.11.0) zawiera podatność na mutation XSS (mXSS) w serializacji elementów raw-text, takich jak <style> i <script>. Gdy drzewo DOM jest przetwarzane przez sanitize_dom() z niestandardową polityką, która zachowuje te elementy, tekst wewnątrz nich jest serializowany bez escapowania, co pozwala na wstrzyknięcie zamykającego tagu i dowolnego HTML. Domyślna polityka sanityzacji nie jest dotknięta, ponieważ usuwa zawartość style i script.
- CVE-2026-77088Średnie
justhtml w wersjach od 0.9.0 do 1.21.0 zawiera podatność na cross-site scripting w to_markdown(), gdzie inline code spans nie uwzględniają pustych linii jako granic bloków. Atakujący może wstrzyknąć puste linie do tekstu elementów code lub pre, aby przerwać inline span, co powoduje, że sanityzowany HTML jest emitowany bez escapowania i ponownie parsowany jako żywy Markdown przez zgodne renderery.
- CVE-2026-74793Średnie
justhtml przed wersją 3.11.0 zawiera podatność na cross-site scripting, gdzie domyślny sanitizer pomija usuwanie procedur obsługi zdarzeń w projekcjach selectedcontent. Atakujący mogą wstrzyknąć elementy SVG lub MathML z procedurami obsługi zdarzeń, które są klonowane i ponownie wstawiane do wyniku bez sanityzacji, umożliwiając ataki XSS typu stored lub reflected.
- CVE-2026-6827Średnie
justhtml przed wersją 1.17.0 zawiera wiele problemów bezpieczeństwa w sanityzacji, serializacji i programistycznym przetwarzaniu DOM. Przy niestandardowych politykach zachowujących obce przestrzenie nazw (SVG/MathML), niebezpieczna zawartość, taka jak punkty integracji HTML (SVG <foreignObject>, MathML <annotation-xml encoding="text/html">) oraz ładunki mXSS wykorzystujące różnice w parserach, może przetrwać sanityzację i stać się aktywnym HTML po ponownym parsowaniu. Dodatkowo, atrybuty SVG filter="url(...)" i zachowane <style> mogą pozostawić ładowanie zasobów przez CSS (@import, background-image:url()). Programistyczne węzły script/style/Comment mogą serializować się do aktywnego znacznika. Dodatkowe poprawki dotyczą mutacji pamięci podręcznej potoku sanityzacji oraz cykli rodzic-dziecko w DOM, które mogły powodować nieskończone pętle. Większość problemów dotyczy zaawansowanych lub niestandardowych konfiguracji, a nie domyślnej bezpiecznej ścieżki JustHTML(..., sanitize=True).
- CVE-2026-5751Średnie
justhtml w wersjach 1.13.0 i wcześniejszych zawiera podatność na parser-differential / mutation cross-site scripting (mXSS) przy użyciu niestandardowej polityki sanityzacji, która zachowuje obce przestrzenie nazw (np. drop_foreign_namespaces=False z dozwolonymi elementami SVG/MathML lub kontenerami raw-text, takimi jak <style>). Specjalnie spreparowane dane wejściowe mogą zostać zsanityzowane do znaczników, które wyglądają bezpiecznie, ale stają się niebezpieczne po ponownym parsowaniu przez przeglądarkę lub inny parser HTML, umożliwiając wstrzyknięcie znaczników. Domyślna bezpieczna konfiguracja (sanitize=True) nie jest dotknięta. Poprawiono w wersji 1.14.0.
- CVE-2026-5389Średnie
justhtml przed wersją 1.13.0 zawiera podatność na cross-site scripting w funkcji to_markdown() podczas serializacji kontrolowanej przez atakującego zawartości pre. Atakujący mogą umieścić backticki wewnątrz zsanityzowanych elementów pre, aby wyrwać się ze stałej długości bloków kodu, umożliwiając wykonanie surowego HTML, gdy wygenerowany Markdown jest renderowany przez renderery CommonMark lub GFM.
- CVE-2026-4671Wysokie
justhtml przed wersją 1.18.0 zawiera wiele problemów niskiej wagi dotyczących odmowy usługi w obsłudze selektorów CSS i linkifikacji. Aplikacje, które przetwarzają sterowane przez atakującego selektory, bardzo duże niezaufane dokumenty, konstruują drzewa DOM z niezaufanej struktury lub włączają linkifikację na niezaufanym tekście, mogą zużywać nadmierną ilość CPU lub pamięci. Problemy dotyczą tylko dostępności i nie pozwalają na wykonanie skryptów, ujawnienie danych ani ominięcie sanityzacji.
Oryginalny opis (angielski, źródło NVD)
justhtml before 1.15.0 contains multiple security issues in URL sanitization helpers (clean_url_value/clean_url_in_js_string), HTML serialization, Markdown passthrough (html_passthrough=True), and several custom sanitization-policy edge cases. Depending on configuration, an attacker can bypass sanitization to inject active HTML and JavaScript — for example via encoded javascript: URLs, backslash-based relative URLs resolved as remote hosts, markup-breaking programmatic element/attribute names or HTML comments, raw </textarea> reintroduction through Markdown passthrough, or preserved <style>/<meta http-equiv=refresh>/<base href> tags in custom policies. Most custom-policy issues do not affect the default sanitize=True configuration; they primarily affect helper APIs, programmatic DOM construction, html_passthrough=True, and custom policies/transform pipelines.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

