DOMPurify до 3.3.3 не может очистить элементы DOM, переданные через режим IN_PLACE, если элемент происходит из другого окна/области (например, contentDocument iframe). Межобластная проверка экземпляра в частной функции _isNode() возвращает false для узлов внешней области, в результате чего DOMPurify преобразует элемент в строку (получая '[object HTMLDivElement]'), автоматически сбрасывает IN_PLACE в false и возвращает необработанный элемент без изменений с любыми полезными нагрузками XSS.
Показать оригинальное описание (EN)
DOMPurify through 3.3.3 fails to sanitize DOM elements passed via IN_PLACE mode when the element originates from a different window/realm (e.g., an iframe's contentDocument). A cross-realm instanceof check in the private _isNode() function returns false for foreign-realm nodes, causing DOMPurify to stringify the element (yielding '[object HTMLDivElement]'), silently reset IN_PLACE to false, and return the unsanitized element unchanged with any XSS payloads intact.
Характеристики атаки
Последствия
Строка CVSS v4.0