CVE-2026-41240
ŚrednieCVSS 6.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 24 - wyżej niż 24% wszystkich znanych CVE
Streszczenie
DOMPurify w wersjach przed 3.4.0 ma niespójność między obsługą FORBID_TAGS i FORBID_ATTR, gdy używana jest funkcyjna opcja ADD_TAGS. Gdy EXTRA_ELEMENT_HANDLING.tagCheck zwraca true, sprawdzenie FORBID_TAGS jest pomijane, co pozwala zabronionym elementom przetrwać sanityzację wraz z atrybutami. Wersja 3.4.0 naprawia problem.
Ocena ryzyka
Może to umożliwić obejście sanityzacji HTML i przeprowadzenie ataków XSS w aplikacjach korzystających z DOMPurify z tą konfiguracją. Organizacje używające tej biblioteki do oczyszczania treści są narażone na wstrzyknięcie złośliwego kodu.
Rekomendacja
Zaktualizuj DOMPurify do wersji 3.4.0 lub nowszej. Jeśli aktualizacja nie jest możliwa, przejrzyj konfigurację ADD_TAGS i FORBID_TAGS oraz ogranicz użycie funkcyjnego tagCheck.
Inne podatności w DOMPurify
Zobacz wszystkie- CVE-2026-116804Średnie
DOMPurify od wersji 3.4.4 przed 3.4.17 zawiera obejście SAFE_FOR_TEMPLATES, które pozwala atakującym zachować wyrażenia szablonów w dołączonych shadow rootach podczas korzystania z trybów RETURN_DOM, RETURN_DOM_FRAGMENT lub IN_PLACE. Atakujący mogą podzielić wyrażenia na węzły tekstowe oddzielone niedozwolonymi elementami, które łączą się po usunięciu i są oceniane przez downstreamowe silniki szablonów, prowadząc do cross-site scripting.
- CVE-2026-116803Średnie
DOMPurify w wersjach przed 3.4.17 zawiera podatność typu cross-site scripting, która pozwala atakującym zachować aktywne event handlery, gdy hook IN_PLACE usuwa węzeł nadrzędny lub sąsiedni. Znaczniki atakującego w odłączonych poddrzewach nie są przetwarzane ani neutralizowane, więc handlery takie jak img onerror uruchamiają się po zakończeniu sanitize(), powodując DOM XSS.
- CVE-2026-116802Średnie
DOMPurify w wersjach przed 3.4.17 zawiera podatność typu cross-site scripting pozwalającą obejść zabezpieczenie SMIL attributeName=href, gdy PARSER_MEDIA_TYPE ma wartość application/xhtml+xml, ponieważ transformCaseFunc nie zamienia nazw atrybutów na małe litery. Atakujący może przesłać SVG z elementem animate lub set używającym attributeName="href" oraz wpisu javascript: w values, aby wykonać skrypt po kliknięciu przez użytkownika zsanityzowanego linku.
- CVE-2026-109345Średnie
DOMPurify przed wersją 3.4.16 zawiera podatność na cross-site scripting, która pozwala atakującym ominąć sanityzację, ponieważ tryb IN_PLACE zwraca wymuszony usunięty element style, którego zawartość tekstowa nadal zawiera znaczniki. Atakujący mogą dostarczyć element style zawierający zamykający tag style i payload img onerror, który wykonuje skrypt, gdy aplikacja serializuje i ponownie parsuje zwrócony węzeł.
- CVE-2026-109344Średnie
DOMPurify od wersji 3.4.13 przed 3.4.16 zawiera podatność na cross-site scripting, ponieważ tryb IN_PLACE nie neutralizuje poddrzew odłączonych przez hooki afterSanitizeElements lub afterSanitizeAttributes. Atakujący mogą dostarczyć znaczniki z handlerami on* wewnątrz wrappera usuniętego przez takie hooki, pozostawiając handlery aktywne na żywym DOM, aby wykonać skrypt w kontekście ofiary.
- CVE-2026-75838Średnie
DOMPurify przed wersją 3.4.13 zawiera podatność na cross-site scripting w sanityzacji IN_PLACE, gdzie haki usuwania elementów nie neutralizują odłączonych poddrzew. Atakujący mogą dostarczyć HTML z handlerami zdarzeń na elementach potomnych, które wykonują się po zakończeniu sanityzacji, mimo że zwrócony korzeń wygląda na czysty.
- CVE-2026-66010Średnie
DOMPurify przed wersją 3.4.12 nie wykonuje haka afterSanitizeElements dla elementów niestandardowych dozwolonych przez CUSTOM_ELEMENT_HANDLING.tagNameCheck, co pozwala atrybutom ominąć polityki bezpieczeństwa aplikacji. Atakujący mogą zachować wrażliwe atrybuty na elementach niestandardowych, które później ponownie wstrzykują je do zlewów innerHTML, tworząc drugorzędne gadżety XSS.
- CVE-2026-65914Średnie
DOMPurify przed wersją 3.3.2 zawiera podatność na mutacyjne XSS, gdy oczyszczony HTML jest ponownie wstawiany do specjalnych kontekstów parsowania za pomocą innerHTML z wrapperami takimi jak script, xmp, iframe, noembed, noframes lub noscript. Atakujący mogą stworzyć ładunki z sekwencjami zamykającymi, które wychodzą poza kontekst wrappera podczas ponownego parsowania, reaktywując niebezpieczny kod z obsługą zdarzeń w celu wykonania JavaScript.
- CVE-2026-65913Średnie
DOMPurify przed wersją 3.3.2 zawiera podatność na zatruwanie prototypu w trybie USE_PROFILES. Atakujący może ustawić właściwości prototypu Array.prototype, takie jak onclick, na true, co powoduje, że DOMPurify akceptuje procedury obsługi zdarzeń jako dozwolone atrybuty, prowadząc do XSS opartego na DOM.
- CVE-2026-65912Średnie
DOMPurify przed wersją 3.3.2 zawiera podatność na obejście walidacji URI, gdy ADD_ATTR jest dostarczane jako funkcja predykatu przez EXTRA_ELEMENT_HANDLING.attributeCheck. Atakujący może dostarczyć predykat akceptujący określone kombinacje atrybutów i tagów, aby ominąć walidację bezpiecznych URI, umożliwiając niebezpieczne protokoły, takie jak javascript:, co prowadzi do XSS opartego na DOM.
Oryginalny opis (angielski, źródło NVD)
DOMPurify is a DOM-only cross-site scripting sanitizer for HTML, MathML, and SVG. Versions prior to 3.4.0 have an inconsistency between FORBID_TAGS and FORBID_ATTR handling when function-based ADD_TAGS is used. Commit c361baa added an early exit for FORBID_ATTR at line 1214. The same fix was not applied to FORBID_TAGS. At line 1118-1123, when EXTRA_ELEMENT_HANDLING.tagCheck returns true, the short-circuit evaluation skips the FORBID_TAGS check entirely. This allows forbidden elements to survive sanitization with their attributes intact. Version 3.4.0 patches the issue.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

