CVE-2026-66370
ŚrednieCVSS 6.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 14 - wyżej niż 14% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Atakujący może przechwycić dane uwierzytelniające lub inne wrażliwe informacje wprowadzane przez użytkowników w formularzach na zaufanych stronach, co może prowadzić do naruszenia bezpieczeństwa kont.
Rekomendacja
Zaktualizuj bibliotekę html_sanitize_ex do wersji 1.4.5 lub 1.5.3 (w zależności od gałęzi), aby naprawić podatność.
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-66829Średnie
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.
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 an unauthenticated remote attacker to retarget a form already on the rendering page and receive whatever the victim submits, including credentials, via the form and formaction attributes on an <input> element in sanitized HTML. HTML's form attribute associates an input with any form on the page by its id even when the input sits outside that form, and formaction on a submit control overrides the owning form's action. Neither attribute receives a scheme check, so an absolute cross-origin URL survives sanitizing. No script executes. The scrubber allows neither form nor button, so the attacker cannot introduce a form of their own and the rendering page must already contain a form carrying an id. 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.

