CVE-2026-66829
ŚrednieCVSS 6.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 41 - wyżej niż 41% wszystkich znanych CVE
Streszczenie
Podatność typu Open Redirect w bibliotece html_sanitize_ex (komponent HTML5 scrubber) pozwala zdalnemu atakującemu przekierować odwiedzających stronę na wybrany przez siebie adres URL za pomocą elementu <meta http-equiv="refresh"> w przefiltrowanym HTML. Biblioteka zachowuje elementy <meta> dostarczone przez atakującego, co umożliwia również deklarowanie dyrektyw całostronicowych, takich jak Content-Security-Policy. Problem dotyczy wersji od 0.3.1 do przed 1.4.5 oraz od 1.5.0-rc.0 do przed 1.5.3.
Ocena ryzyka
Atakujący może wykorzystać tę podatność do przekierowania użytkowników na złośliwe strony, co może prowadzić do phishingu, kradzieży danych lub instalacji złośliwego oprogramowania. Dodatkowo możliwość wstrzyknięcia dyrektyw CSP może osłabić zabezpieczenia strony.
Rekomendacja
Zaktualizuj bibliotekę html_sanitize_ex do wersji 1.4.5 lub nowszej (jeśli używasz wersji 1.x) albo do wersji 1.5.3 lub nowszej (jeśli używasz wersji 1.5.0-rc). Upewnij się, że wszystkie wdrożenia używają poprawionej wersji.
Inne podatności w html_sanitize_ex
Zobacz wszystkie- CVE-2026-68750Wysokie
Podatność związana z nieefektywną złożonością algorytmiczną w silniku przemierzania w html_sanitize_ex pozwala nieuwierzytelnionemu zdalnemu atakującemu wyczerpać CPU i pamięć serwera poprzez płaską sekwencję elementów rodzeństwa w sanityzowanym HTML. Funkcja List.flatten w Traverser.traverse/2 powoduje kwadratową złożoność dla liczby rodzeństwa, co prowadzi do przeciążenia zasobów.
- CVE-2026-68749Wysokie
Podatność związana z nieefektywną złożonością wyrażeń regularnych w scrubberze CSS w html_sanitize_ex pozwala nieuwierzytelnionemu zdalnemu atakującemu wyczerpać CPU serwera poprzez długą deklarację CSS w sanityzowanym HTML. Wyrażenie regularne w CSS.scrub/1 ma kwadratową złożoność dla długich ciągów znaków, co prowadzi do przeciążenia procesora.
- CVE-2026-68747Średnie
Podatność polegająca na niewłaściwej neutralizacji specjalnych elementów w danych wyjściowych używanych przez komponent podrzędny (wstrzyknięcie) w skruberze CSS w html_sanitize_ex. Nieuwierzytelniony zdalny atakujący może wstrzyknąć reguły CSS, w tym import zewnętrznego arkusza stylów, do strony serwowanej innym użytkownikom. HtmlSanitizeEx.Scrubber.CSS.scrub/1 stosuje listę dozwolonych właściwości i wartości przez Regex.replace na podciągach pasujących do wzorca deklaracji właściwość: wartość, więc dane wejściowe niepasujące do tego wzorca nie są sprawdzane i są kopiowane do wyniku bez zmian. @import url(//attacker.example/style.css); przetrwa, podczas gdy ten sam URL wewnątrz deklaracji background: url(...) jest usuwany. Granice elementów są rozwiązywane przed uruchomieniem skrubera, więc wstrzyknięta treść nie ucieka z elementu <style> i nie wykonuje się żaden skrypt. Dotyczy wersji html_sanitize_ex od 0.3.1 przed 1.4.5 oraz od 1.5.0-rc.0 przed 1.5.4.
- CVE-2026-66843Średnie
Podatność polegająca na dołączaniu funkcjonalności z niezaufanej sfery kontroli w skruberze HTML5 w html_sanitize_ex. Zdalny atakujący może załadować wybrany dokument do zaufanej strony poprzez atrybut data elementu <object> w oczyszczonym HTML. Element object jest jedynym elementem zawierającym URI, który nie jest zarejestrowany przez allow_tag_with_uri_attributes/3, a jedyną ochroną jest dopasowanie prefiksu na małe litery "javascript:", więc warianty z mieszaną wielkością liter, URI data:, adresy URL względne protokołu i ścieżki samego pochodzenia przechodzą. Nie jest to bezwarunkowe cross-site scripting, ale stwarza ryzyko. Dotyczy wersji html_sanitize_ex od 0.3.1 przed 1.4.5 oraz od 1.5.0-rc.0 przed 1.5.3.
- CVE-2026-66370Średnie
Podatność polegająca na otwartym przekierowaniu URL w skruberze HTML5 w html_sanitize_ex pozwala nieuwierzytelnionemu zdalnemu atakującemu na przekierowanie formularza już znajdującego się na renderowanej stronie i przechwycenie tego, co ofiara wyśle, w tym danych uwierzytelniających, poprzez atrybuty form i formaction na elemencie <input> w oczyszczonym HTML. Atrybut form HTML kojarzy input z dowolnym formularzem na stronie po jego id, nawet jeśli input znajduje się poza tym formularzem, a formaction na elemencie submit nadpisuje akcję formularza. Żaden z tych atrybutów nie jest sprawdzany pod kątem schematu, więc absolutny URL cross-origin przechodzi przez sanityzację. Nie wykonuje się żaden skrypt. Skruber nie pozwala na form ani button, więc atakujący nie może wprowadzić własnego formularza, a strona renderująca musi już zawierać formularz z id. Problem dotyczy html_sanitize_ex od 0.3.1 przed 1.4.5 oraz od 1.5.0-rc.0 przed 1.5.3.
Oryginalny opis (angielski, źródło NVD)
URL Redirection to Untrusted Site ('Open Redirect') vulnerability in the HTML5 scrubber in rrrene html_sanitize_ex allows a remote attacker to force visitors of a page to navigate to a site of the attacker's choosing via a <meta http-equiv="refresh"> element in sanitized HTML. HtmlSanitizeEx.html5/1 keeps attacker-supplied <meta> elements in its output. A meta element acts on the whole document rather than on the fragment it was embedded in, so it can also declare document-wide directives such as Content-Security-Policy. This is not cross-site scripting. Browsers do not navigate a meta refresh to a javascript: URL, so the uppercase JAVASCRIPT: filter bypass yields no script execution and none was demonstrated. This issue affects html_sanitize_ex: from 0.3.1 before 1.4.5 and from 1.5.0-rc.0 before 1.5.3.

