CVE-2026-6827
ŚrednieCVSS 6.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 8 - wyżej niż 8% wszystkich znanych CVE
Streszczenie
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).
Ocena ryzyka
Ryzyko obejmuje możliwość wstrzyknięcia aktywnego HTML lub CSS, co może prowadzić do ataków XSS, kradzieży danych lub niepożądanego ładowania zewnętrznych zasobów, szczególnie w niestandardowych konfiguracjach.
Rekomendacja
Zaleca się aktualizację justhtml do wersji 1.17.0 lub nowszej oraz przegląd konfiguracji pod kątem niestandardowych polityk sanityzacji, aby uniknąć zachowywania obcych przestrzeni nazw, jeśli nie są konieczne.
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-5388Krytyczne
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>.
- 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-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.17.0 contains multiple security issues in sanitization, serialization, and programmatic DOM handling. When custom policies preserve foreign namespaces (SVG/MathML), dangerous content such as HTML integration points (SVG <foreignObject>, MathML <annotation-xml encoding="text/html">) and mutation-XSS parser-differential payloads could survive sanitization and become active HTML after reparse; SVG filter="url(...)" and preserved <style> could leave resource-loading CSS (@import, background-image:url()). Programmatic script/style/Comment nodes could serialize into active markup. Additional hardening fixes address sanitize-pipeline cache mutation and DOM parent/child cycles that could cause infinite loops. Most issues affect advanced or custom configurations rather than the default JustHTML(..., sanitize=True) safe path.

