DOMPurify w wersji 3.4.4 domyślnie zezwalał na element <selectedcontent>, co umożliwiało przeglądarce ponowne sklonowanie payload XSS po zakończeniu sanityzacji. W efekcie niezdezynfekowany kod HTML mógł zostać zwrócony i wykonany w kontekście strony ofiary.
▸ Pokaż oryginał (EN)
DOMPurify is a DOM-only cross-site scripting sanitizer for HTML, MathML, and SVG. In 3.4.4, DOMPurify allowed selectedcontent by default, allowing browsers to re-clone an XSS payload after sanitization so that unsanitized markup inside <selectedcontent> is returned. This issue is fixed in version 3.4.5.
DOMPurify przetwarza i oczyszcza przekazany HTML, jednak w wersji 3.4.4 element <selectedcontent> był domyślnie dozwolony na liście. Przeglądarka, obsługując ten element, może ponownie sklonować jego zawartość po zakończeniu procesu sanityzacji, przywracając tym samym oryginalny, niezdezynfekowany markup. Pozwala to atakującemu na przemycenie złośliwego payload XSS, który ominie mechanizm ochrony biblioteki.
Atakujący może wykonać dowolny skrypt JavaScript w kontekście przeglądarki ofiary (XSS), co prowadzi do kradzieży sesji, danych uwierzytelniających lub wrażliwych informacji ze strony atakowanej aplikacji.
Należy zaktualizować DOMPurify do wersji 3.4.5, w której problem został naprawiony poprzez zablokowanie elementu <selectedcontent> na poziomie domyślnej konfiguracji biblioteki.
Cure53 DOMPurify w wersji 3.4.4
Podatność została ujawniona i naprawiona przez twórców biblioteki — szczegóły dostępne w oficjalnym security advisory GHSA-87xg-pxx2-7hvx oraz commicie 011b0c78 w repozytorium GitHub projektu Cure53/DOMPurify.
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:L/A:NCure53 Dompurify
APPCure533.4.4
Powiązane podatności
Prototype pollution w bibliotece DOMPurify umożliwiający XSS
DOMPurify — podatność mXSS oparta na zagnieżdżaniu znaczników
DOMPurify is a DOM-only, super-fast, uber-tolerant XSS sanitizer for HTML, MathML and SVG. It has been discove...
DOMPurify przed wersją 3.4.12 nie wykonuje hook'a afterSanitizeElements dla custom elements dozwolonych przez ...
DOMPurify before 3.4.11 fails to clone the ALLOWED_ATTR allowlist when setConfig() is used with an uponSanitiz...