CVE-2026-41238
ŚrednieCVSS 6.9Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 19 - wyżej niż 19% wszystkich znanych CVE
Streszczenie
DOMPurify to sanitizer XSS działający wyłącznie na DOM dla HTML, MathML i SVG. Wersje od 3.0.1 do 3.3.3 są podatne na obejście XSS oparte na zanieczyszczeniu prototypu: gdy aplikacja używa DOMPurify.sanitize() z domyślną konfiguracją (bez opcji CUSTOM_ELEMENT_HANDLING), wcześniejszy gadget prototype pollution może wstrzyknąć do Object.prototype permisywne wyrażenia regularne tagNameCheck i attributeNameCheck, powodując przepuszczenie przez sanityzację dowolnych elementów niestandardowych z dowolnymi atrybutami, w tym handlerami zdarzeń. Wersja 3.4.0 naprawia problem.
Ocena ryzyka
Możliwe jest wykonanie złośliwego skryptu w przeglądarce użytkownika (XSS), co może prowadzić do kradzieży sesji lub danych.
Rekomendacja
Zaktualizuj DOMPurify do wersji 3.4.0 lub nowszej i rozważ jawne ustawienie CUSTOM_ELEMENT_HANDLING, aby ograniczyć dozwolone elementy i atrybuty.
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 3.0.1 through 3.3.3 are vulnerable to a prototype pollution-based XSS bypass. When an application uses `DOMPurify.sanitize()` with the default configuration (no `CUSTOM_ELEMENT_HANDLING` option), a prior prototype pollution gadget can inject permissive `tagNameCheck` and `attributeNameCheck` regex values into `Object.prototype`, causing DOMPurify to allow arbitrary custom elements with arbitrary attributes — including event handlers — through sanitization. Version 3.4.0 fixes the issue.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

