p PatchFirst

PatchFirst · Свежие уязвимости

Уязвимости dompurify

За последние 30 дней в dompurify опубликовано уязвимостей: 5; в каталоге KEV: 0.

RSS ↗
Фильтры уязвимостей
Сбросить фильтры

Уязвимостей: 33

  1. GHSA-cg2g-xh64-v4q7

    Без оценкиЕсть исправление

    DOMPurify SAFE_FOR_TEMPLATES bypass: split template expressions survive in attached shadow root content on DOM output modes

    ## Summary When DOMPurify is configured with `SAFE_FOR_TEMPLATES: true` together with a DOM-returning mode (`RETURN_DOM: true`, `RETURN_DOM_FRAGMENT: true`, or `IN_PLACE: true`), template expressions such as `{{...}}`, `${...}`, and `<%...%>` survive sanitization inside the text content of an attached shadow root. The post-walk safety net `_scrubTemplateExpressions` (`src/purify.ts:1717`) was extended to recurse into `<template>.content`, but it never recurses into attached shadow roots. An attacker who can supply a DOM node carrying a shadow root (the `IN_PLACE` and shadow-aware `RETURN_DOM` surfaces) can split an expression across text nod

    • Обновитесь до 3.4.17
    Опубликовано Обновлено
  2. GHSA-mrv2-3pqr-j5jr

    Без оценкиЕсть исправление

    DOMPurify IN_PLACE: hook that removes a parent or sibling leaves the detached subtree's event handlers armed (incomplete fix for GHSA-p98j-92pf-mc4p)

    ### Summary The 3.4.16 fix for GHSA-p98j-92pf-mc4p only covers a hook that removes the node it was called for. If an `IN_PLACE` hook removes a different node, like the current node's parent or a sibling that has not been visited yet, that subtree is never walked or neutralized. Event handlers in it stay on the elements, and an `<img onerror>` that was already loading fires after `sanitize()` returns. The README says: "Nodes that a hook detaches from the tree ... are treated as removed. In IN_PLACE mode their subtree is neutralized inline, so an `<img onload>` that was already loading when you built the live tree cannot fire after `sanitize(

    • Обновитесь до 3.4.17
    Опубликовано Обновлено
  3. GHSA-c6gr-qvv4-5v3f

    Без оценкиЕсть исправление

    DOMPurify: SMIL attributeName=href guard is skipped when PARSER_MEDIA_TYPE is application/xhtml+xml

    ### Summary DOMPurify drops `attributeName` attributes whose value contains `href`, so an allowed `<animate>` or `<set>` can't rewrite a link's href after sanitizing. The check compares the attribute name after `transformCaseFunc`, and that function doesn't lowercase in XHTML mode. In XHTML the attribute is spelled `attributeName`, so the comparison with `"attributename"` never matches and the guard does nothing. An app that uses `PARSER_MEDIA_TYPE: 'application/xhtml+xml'` and allows `animate` and `attributeName` will keep `<animate attributeName="href" values="x;javascript:alert(1)">`. Clicking the parent link then runs the script. This

    • Обновитесь до 3.4.17
    Опубликовано Обновлено
  4. CVE-2026-109345

    Средний · CVSS 5.1EPSS 0,2%Есть исправление

    DOMPurify before 3.4.16 XSS via IN_PLACE Returned Rawtext Root

    DOMPurify before 3.4.16 contains a cross-site scripting vulnerability that allows attackers to bypass sanitization because IN_PLACE mode returns a force-removed style element whose text content still carries markup. Attackers can supply a style element containing a closing style tag and an img onerror payload, which executes script when the application serializes and re-parses the returned node.

    • Обновитесь до 3.4.16
    Опубликовано Обновлено
  5. CVE-2026-109344

    Средний · CVSS 5.1EPSS 0,19%Есть исправление

    DOMPurify from 3.4.13 before 3.4.16 DOM XSS via IN_PLACE afterSanitize Hooks

    DOMPurify from 3.4.13 before 3.4.16 contains a cross-site scripting vulnerability because IN_PLACE mode fails to neutralize subtrees detached by afterSanitizeElements or afterSanitizeAttributes hooks. Attackers can supply markup with on* handlers inside a wrapper removed by such hooks, leaving handlers armed on the live DOM to execute script in the victim origin.

    • Обновитесь до 3.4.16
    Опубликовано Обновлено
  6. CVE-2026-75838

    Средний · CVSS 5.1EPSS 0,3%Есть исправление

    DOMPurify before 3.4.13 Cross-Site Scripting via IN_PLACE hook

    DOMPurify before 3.4.13 contains a cross-site scripting vulnerability in IN_PLACE sanitization where element-removal hooks fail to neutralize detached subtrees. Attackers can supply HTML with event handlers on descendant elements that execute after sanitization completes, even though the returned root appears clean.

    • Обновитесь до 3.4.13
    Опубликовано Обновлено
  7. CVE-2026-66010

    Средний · CVSS 5.1EPSS 0,21%Есть исправление

    DOMPurify before 3.4.12 Hook Bypass via CUSTOM_ELEMENT_HANDLING

    DOMPurify before 3.4.12 fails to execute afterSanitizeElements hook for custom elements allowed via CUSTOM_ELEMENT_HANDLING.tagNameCheck, allowing attributes to bypass application security policies. Attackers can preserve sensitive attributes on custom elements that later re-inject them into innerHTML sinks, creating second-order XSS gadgets.

    • Обновитесь до 3.4.12
    Опубликовано Обновлено
  8. CVE-2026-65914

    Средний · CVSS 5.3EPSS 0,31%Есть исправление

    DOMPurify before 3.3.2 Mutation XSS via Re-Contextualization

    DOMPurify before 3.3.2 contains a mutation-XSS vulnerability when sanitized HTML is reinserted into special parsing contexts using innerHTML with wrappers like script, xmp, iframe, noembed, noframes, or noscript. Attackers can craft payloads with closing sequences that break out of the wrapper context during reparsing, reactivating dangerous markup with event handlers to execute JavaScript.

    • Обновитесь до 3.3.2
  9. CVE-2026-65913

    Средний · CVSS 5.1EPSS 0,32%Есть исправление

    DOMPurify before 3.3.2 Prototype Pollution via USE_PROFILES

    DOMPurify before 3.3.2 contains a prototype pollution vulnerability in USE_PROFILES mode that allows attackers to bypass attribute filtering by polluting Array.prototype properties. Attackers can set Array.prototype properties like onclick to true, causing DOMPurify to accept event handlers as allowlisted attributes and resulting in DOM-based XSS when sanitized markup is rendered.

    • Обновитесь до 3.3.2
  10. CVE-2026-65912

    Средний · CVSS 5.1EPSS 0,3%Есть исправление

    DOMPurify before 3.3.2 URI Validation Bypass via ADD_ATTR

    DOMPurify before 3.3.2 contains a URI validation bypass vulnerability when ADD_ATTR is provided as a predicate function via EXTRA_ELEMENT_HANDLING.attributeCheck. Attackers can supply a predicate that accepts specific attribute and tag combinations to bypass URI-safe validation, allowing unsafe protocols like javascript: to survive sanitization and execute as DOM-based XSS when the link is activated.

    • Обновитесь до 3.3.2
  11. CVE-2026-65903

    Средний · CVSS 5.1EPSS 0,33%Есть исправление

    DOMPurify before 3.4.0 ADD_TAGS Function Bypasses FORBID_TAGS

    DOMPurify before 3.4.0 contains a logic error in the ADD_TAGS function where short-circuit evaluation allows forbidden tags to bypass FORBID_TAGS restrictions. Attackers can craft input containing tags listed in FORBID_TAGS that are also added via ADD_TAGS function, causing them to be retained in sanitized output.

    • Обновитесь до 3.4.0
  12. CVE-2026-65902

    Средний · CVSS 5.3EPSS 0,36%Есть исправление

    DOMPurify before 3.4.7 Hook Mutation Pollution via allowedTags

    DOMPurify before 3.4.7 (affected versions <= 3.4.5) passes direct references to the module-level DEFAULT_ALLOWED_TAGS and DEFAULT_ALLOWED_ATTR sets to the uponSanitizeElement and uponSanitizeAttribute hooks via data.allowedTags / data.allowedAttributes when sanitize is called without an explicit cfg.ALLOWED_TAGS / cfg.ALLOWED_ATTR array. A hook that mutates these fields permanently widens the default allow-lists for the lifetime of the DOMPurify instance, so all subsequent default-config sanitize calls inherit the widened defaults and attacker payloads using the poisoned tag/attribute name survive sanitization. removeAllHooks(), clearConfig()

    • Обновитесь до 3.4.7
  13. CVE-2026-65901

    Средний · CVSS 5.1EPSS 0,29%Нет опубликованного исправления

    DOMPurify 3.4.6 Cross-Site Scripting via IN_PLACE nodeName

    DOMPurify through 3.4.6 contains a cross-site scripting vulnerability in IN_PLACE mode that trusts attacker-controlled nodeName on live non-form nodes. Attackers can supply hostile live DOM objects with real script children whose observable nodeName is clobbered to appear as allowed elements, causing scripts to execute when the sanitized tree is inserted into a live document.

  14. CVE-2026-65900

    Средний · CVSS 5.1EPSS 0,31%Есть исправление

    DOMPurify before 3.4.8 Template Expression Injection via RETURN_DOM

    DOMPurify versions >=3.0.0 and before 3.4.8, when configured with SAFE_FOR_TEMPLATES together with a DOM output mode (RETURN_DOM, RETURN_DOM_FRAGMENT, or IN_PLACE), fail to strip template expressions (e.g. ${evil}, {{evil}}, <%evil%>) inside <template> element content. The final normalization/scrub pass (_scrubTemplateExpressions) uses a NodeIterator and node.normalize() that do not descend into template.content, so expressions that only form after adjacent text nodes merge survive sanitization. This bypasses SAFE_FOR_TEMPLATES and can allow a downstream template engine to evaluate attacker-supplied expressions. The string output path is not

    • Обновитесь до 3.4.8
  15. CVE-2026-65899

    Средний · CVSS 5.1EPSS 0,41%Есть исправление

    DOMPurify before 3.4.9 Trusted Types Policy State Contamination

    DOMPurify 3.0.0 before 3.4.9 does not reset the retained Trusted Types policy when clearConfig() is called, so a DOMPurify instance reused across trust boundaries stays bound to a previously supplied TRUSTED_TYPES_POLICY. A later caller that requests RETURN_TRUSTED_TYPE output receives a TrustedHTML object created by the old (potentially unsafe) policy rather than a clean default, which can lead to script execution at a Trusted Types sink. Passing TRUSTED_TYPES_POLICY: null on the later call also does not clear the retained policy.

    • Обновитесь до 3.4.9
  16. CVE-2026-65898

    Средний · CVSS 5.1EPSS 0,21%Есть исправление

    DOMPurify before 3.4.11 Permanent Attribute Allowlist Pollution via setConfig

    DOMPurify before 3.4.11 fails to clone the ALLOWED_ATTR allowlist when setConfig() is used with an uponSanitizeAttribute hook, allowing the hook to permanently mutate the shared allowlist. Attackers can register a hook that conditionally allows dangerous attributes like onerror for trusted elements, then submit untrusted content that inherits the polluted allowlist and executes event handlers as stored XSS.

    • Обновитесь до 3.4.11
  17. CVE-2026-49978

    Средний · CVSS 6.3EPSS 0,4%Есть исправление

    DOMPurify IN_PLACE Sanitization Bypass via Attached Shadow Root Inside <template>.content

    DOMPurify is a DOM-only cross-site scripting sanitizer for HTML, MathML, and SVG. Prior to 3.4.7, DOMPurify IN_PLACE sanitization could skip shadow contents attached to an element inside <template>.content, allowing attacker-controlled markup such as event handlers, JavaScript URLs, or scripts to survive and execute when an application cloned and inserted the sanitized template. This issue is fixed in version 3.4.7.

    • Обновитесь до 3.4.7
  18. CVE-2026-49459

    Средний · CVSS 6.1EPSS 0,36%Есть исправление

    DOMPurify: IN_PLACE mode preserves attributes of a clobbered root element, allowing XSS via attacker-controlled root DOM

    DOMPurify is a DOM-only cross-site scripting sanitizer for HTML, MathML, and SVG. Prior to 3.4.6, DOMPurify.sanitize(root, { IN_PLACE: true }) could preserve event-handler attributes on an attacker-controlled <form> root when a descendant name clobbered properties checked by _isClobbered, because _forceRemove no-opped on the parent-less root and _sanitizeAttributes returned early. This issue is fixed in version 3.4.6.

    • Обновитесь до 3.4.6
  19. CVE-2026-49458

    Средний · CVSS 6.1EPSS 0,4%Есть исправление

    DOMPurify: Cross-realm IN_PLACE sanitization leaves executable markup intact via realm-bound `instanceof` checks

    DOMPurify is a DOM-only cross-site scripting sanitizer for HTML, MathML, and SVG. Prior to 3.4.6, DOMPurify.sanitize(node, { IN_PLACE: true }) accepted same-origin foreign-realm DOM nodes while follow-on checks used parent-realm constructors, causing instanceof checks for forms, named node maps, document fragments, and elements to fail and skip clobber, template-content, and shadow-DOM sanitization branches so executable markup could survive. This issue is fixed in version 3.4.6.

    • Обновитесь до 3.4.6
  20. CVE-2026-47423

    Высокий · CVSS 8.2EPSS 0,41%Есть исправление

    DOMPurify XSS via `selectedcontent` re-clone

    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.

    • Обновитесь до 3.4.5

Проверьте свой сервер

Сопоставьте установленный стек и версии со свежими базами уязвимостей.

Проверьте свой сервер →