Every CVESearch/Get API key

CVE-2026-65901

DOMPurify 3.4.6 Cross-Site Scripting via IN_PLACE nodeName

5.1 MediumFix available

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.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
Active

What an attacker can affect

Confidentiality
None
Integrity
None
Availability
None

Exploit likelihood

0.29%Up 0.1 points since Jul 24, 2026
90%50%10%1%

What each source reports

CVE List Score used5.1

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.

Record
CVE-2026-65901
CVSS 4.0
5.1 MediumCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N
CVSS 3.1
6.1 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
Weakness
CWE-79
Updated
2026-11-02
EUVDEUVD-2026-482705.1

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.

Record
EUVD-2026-48270
CVSS 4.0
5.1 MediumCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N
Updated
2026-11-02
GitHub AdvisoriesGHSA-x4vx-rjvf-j5p4No score

DOMPurify: `IN_PLACE` mode trusts attacker-controlled `nodeName` on live non-form nodes, allowing script retention and XSS via attacker-supplied DOM objects

Summary

When DOMPurify.sanitize(root, { IN_PLACE: true }) is called on an attacker-supplied live DOM node, DOMPurify still trusts currentNode.nodeName for non-form nodes in the main _sanitizeElements pipeline. A real <script> child node whose observable nodeName is attacker-controlled can therefore be misclassified as an allowed element and retained. When the sanitized tree is inserted into a live document, the script executes.

This affects current 3.4.6. The recent IN_PLACE hardening work covers clobbered form handling and foreign-realm shadow/template traversal, but does not harden the main per-node element decision for hostile non-form live nodes.

Affected

  • DOMPurify 3.4.6
  • Any caller that does DOMPurify.sanitize(node, { IN_PLACE: true }) on attacker-supplied live DOM nodes
  • Verified attacker-controlled node sources:
    • same-origin iframe → live node passed by reference
    • same-origin window.open() popup → live node passed by reference
    • same-origin foreign node adopted into the host document via document.adoptNode(node) and then sanitized in-place

Not affected:

  • String-input DOMPurify.sanitize(dirtyString)

Vulnerability details

Code paths

[A] — _sanitizeElements uses the instance-visible nodeName for the allow/forbid decision:

const _sanitizeElements = function (currentNode: any): boolean {
  ...
  if (_isClobbered(currentNode)) {
    _forceRemove(currentNode);
    return true;
  }

  const tagName = transformCaseFunc(currentNode.nodeName);
  ...
  if (
    FORBID_TAGS[tagName] ||
    (!(...) && !ALLOWED_TAGS[tagName])
  ) {
    ...
    _forceRemove(currentNode);
    return true;
  }
  ...
};

For non-form nodes, _isClobbered(currentNode) returns false early. The subsequent element decision therefore trusts currentNode.nodeName directly.

[B] — _isClobbered is form-specific:

const _isClobbered = function (element: Element): boolean {
  const realTagName = getNodeName ? getNodeName(element) : null;
  if (typeof realTagName !== 'string') {
    return false;
  }

  if (transformCaseFunc(realTagName) !== 'form') {
    return false;
  }

  return (...);
};

The hardening is intentionally scoped to form. Non-form nodes are not checked for divergence between the instance-visible property view and the trusted prototype getter view.

Why the bypass works

The attack does not depend on string HTML parsing. It depends on a hostile live DOM object crossing a trust boundary into DOMPurify's IN_PLACE pipeline.

If the attacker controls a same-origin subcontext (iframe or popup), they can prepare a real DOM subtree there and then pass the live node object by reference to a host page that trusts DOMPurify.sanitize(node, { IN_PLACE: true }) as its final sanitization step.

For the verified primitive below:

  • the real child node is <script>
  • its script text is attacker-controlled
  • the observable nodeName is attacker-controlled and made to appear as "DIV"
  • _sanitizeElements therefore classifies the real <script> child as an allowed element
  • the real <script> survives in the sanitized tree and executes on insertion

This primitive survives:

  • direct reference passing
  • document.adoptNode(node) followed by IN_PLACE

It does not survive:

  • importNode
  • cloneNode

because those paths materialize a fresh node and discard the hostile object semantics.

Proof of concept

(1) Minimal — runnable in a single browser context

<!doctype html>
<html><body>
<script src="dist/purify.js"></script>
<script>
  const foreign = window.open('about:blank', '_blank', 'noopener=no');

  const host = foreign.document.createElement('div');
  const script = foreign.document.createElement('script');
  script.textContent = 'window.__pwned = 1';
  Object.defineProperty(script, 'nodeName', {
    value: 'DIV',
    configurable: true,
  });
  host.appendChild(script);

  DOMPurify.sanitize(host, {…
Record
GHSA-x4vx-rjvf-j5p4
Weakness
CWE-79
Updated
2026-11-02
NVD5.1

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.

Record
CVE-2026-65901
CVSS 4.0
5.1 MediumCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
CVSS 3.1
6.1 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
Weakness
CWE-79
Updated
2026-11-02
OSV5.1

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.

Record
CVE-2026-65901
CVSS 4.0
5.1 MediumCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N
Weakness
CWE-79
Updated
2026-11-02
OSVDEBIAN-CVE-2026-659016.1

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.

Record
DEBIAN-CVE-2026-65901
CVSS 3.1
6.1 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
Updated
2026-11-02
Show 38 moreShow less
OSVRHSA-2026:585006.1

Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update

Record
RHSA-2026:58500
CVSS 3.1
6.1 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
Updated
2026-11-02
OSVRHSA-2026:585026.1

Red Hat Security Advisory: Red Hat Hardened Images RPMs bug fix and enhancement update

Record
RHSA-2026:58502
CVSS 3.1
6.1 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
Updated
2026-11-02
OSVUBUNTU-CVE-2026-659015.1

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.

Record
UBUNTU-CVE-2026-65901
CVSS 4.0
5.1 MediumCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N
CVSS 3.1
6.1 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
Updated
2026-11-02
OSVCLSA-2026-1784596279No score

TuxCare security update for dompurify (7 CVEs)

TuxCare rebuilt dompurify to address 7 CVEs. Fixed in 3.0.3-tuxcare.2.

Record
CLSA-2026-1784596279
Updated
2026-11-02
OSVCLSA-2026-1784596351No score

TuxCare security update for dompurify (1 CVE)

TuxCare rebuilt dompurify to address 1 CVE. Fixed in 2.5.8-tuxcare.5.

Record
CLSA-2026-1784596351
Updated
2026-11-02
OSVCLSA-2026-1784682973No score

TuxCare security update for dompurify (1 CVE)

TuxCare rebuilt dompurify to address 1 CVE. Fixed in 2.4.7-tuxcare.3.

Record
CLSA-2026-1784682973
Updated
2026-11-02
OSVCLSA-2026-1784682987No score

TuxCare security update for dompurify (8 CVEs)

TuxCare rebuilt dompurify to address 8 CVEs. Fixed in 3.2.3-tuxcare.2.

Record
CLSA-2026-1784682987
Updated
2026-11-02
OSVCLSA-2026-1784683092No score

TuxCare security update for dompurify (1 CVE)

TuxCare rebuilt dompurify to address 1 CVE. Fixed in 2.4.3-tuxcare.5.

Record
CLSA-2026-1784683092
Updated
2026-11-02
OSVCLSA-2026-1784769526No score

TuxCare security update for dompurify (1 CVE)

TuxCare rebuilt dompurify to address 1 CVE. Fixed in 2.4.0-tuxcare.3.

Record
CLSA-2026-1784769526
Updated
2026-11-02
OSVCLSA-2026-1784856036No score

TuxCare security update for dompurify (1 CVE)

TuxCare rebuilt dompurify to address 1 CVE. Fixed in 2.3.0-tuxcare.4.

Record
CLSA-2026-1784856036
Updated
2026-11-02
OSVCLSA-2026-1786636600No score

TuxCare security update for dompurify (16 CVEs)

TuxCare rebuilt dompurify to address 16 CVEs. Fixed in 2.4.0-tuxcare.1.

Record
CLSA-2026-1786636600
Updated
2026-11-02
OSVCLSA-2026-1786636613No score

TuxCare security update for dompurify (11 CVEs)

TuxCare rebuilt dompurify to address 11 CVEs. Fixed in 2.4.3-tuxcare.1.

Record
CLSA-2026-1786636613
Updated
2026-11-02
OSVCLSA-2026-1786731853No score

TuxCare security update for dompurify (10 CVEs)

TuxCare rebuilt dompurify to address 10 CVEs. Fixed in 3.2.3-tuxcare.3.

Record
CLSA-2026-1786731853
Updated
2026-11-02
OSVCLSA-2026-1787602198No score

TuxCare security update for dompurify (10 CVEs)

TuxCare rebuilt dompurify to address 10 CVEs. Fixed in 3.2.7-tuxcare.1.

Record
CLSA-2026-1787602198
Updated
2026-11-02
OSVCLSA-2026-1789153936No score

TuxCare security update for dompurify (9 CVEs)

TuxCare rebuilt dompurify to address 9 CVEs. Fixed in 2.4.0-tuxcare.5.

Record
CLSA-2026-1789153936
Updated
2026-11-02
OSVCLSA-2026-1789155659No score

TuxCare security update for dompurify (12 CVEs)

TuxCare rebuilt dompurify to address 12 CVEs. Fixed in 2.4.3-tuxcare.8.

Record
CLSA-2026-1789155659
Updated
2026-11-02
OSVCLSA-2026-1792157013No score

TuxCare security update for dompurify (13 CVEs)

TuxCare rebuilt dompurify to address 13 CVEs. Fixed in 3.1.0-tuxcare.2.

Record
CLSA-2026-1792157013
Updated
2026-11-02
OSVCLSA-2026-1792157349No score

TuxCare security update for dompurify (5 CVEs)

TuxCare rebuilt dompurify to address 5 CVEs. Fixed in 3.4.6-tuxcare.2.

Record
CLSA-2026-1792157349
Updated
2026-11-02
OSVCLSA-2026-1792424339No score

TuxCare security update for dompurify (10 CVEs)

TuxCare rebuilt dompurify to address 10 CVEs. Fixed in 2.0.8-tuxcare.3.

Record
CLSA-2026-1792424339
Updated
2026-11-02
OSVCLSA-2026-1792424449No score

TuxCare security update for dompurify (12 CVEs)

TuxCare rebuilt dompurify to address 12 CVEs. Fixed in 2.3.3-tuxcare.3.

Record
CLSA-2026-1792424449
Updated
2026-11-05
OSVCLSA-2026-1792424561No score

TuxCare security update for dompurify (9 CVEs)

TuxCare rebuilt dompurify to address 9 CVEs. Fixed in 3.3.3-tuxcare.3.

Record
CLSA-2026-1792424561
Updated
2026-11-02
OSVCLSA-2026-1792424669No score

TuxCare security update for dompurify (9 CVEs)

TuxCare rebuilt dompurify to address 9 CVEs. Fixed in 3.2.6-tuxcare.3.

Record
CLSA-2026-1792424669
Updated
2026-11-02
OSVCLSA-2026-1792424891No score

TuxCare security update for dompurify (13 CVEs)

TuxCare rebuilt dompurify to address 13 CVEs. Fixed in 2.3.10-tuxcare.3.

Record
CLSA-2026-1792424891
Updated
2026-11-02
OSVCLSA-2026-1792486117No score

TuxCare security update for dompurify (10 CVEs)

TuxCare rebuilt dompurify to address 10 CVEs. Fixed in 3.0.1-tuxcare.3.

Record
CLSA-2026-1792486117
Updated
2026-11-02
OSVCLSA-2026-1792486395No score

TuxCare security update for dompurify (4 CVEs)

TuxCare rebuilt dompurify to address 4 CVEs. Fixed in 3.4.5-tuxcare.3.

Record
CLSA-2026-1792486395
Updated
2026-11-02
OSVCLSA-2026-1792486837No score

TuxCare security update for dompurify (10 CVEs)

TuxCare rebuilt dompurify to address 10 CVEs. Fixed in 3.0.2-tuxcare.3.

Record
CLSA-2026-1792486837
Updated
2026-11-02
OSVCLSA-2026-1792495646No score

TuxCare security update for dompurify (8 CVEs)

TuxCare rebuilt dompurify to address 8 CVEs. Fixed in 3.0.8-tuxcare.3.

Record
CLSA-2026-1792495646
Updated
2026-11-02
OSVCLSA-2026-1792496766No score

TuxCare security update for dompurify (9 CVEs)

TuxCare rebuilt dompurify to address 9 CVEs. Fixed in 3.0.9-tuxcare.3.

Record
CLSA-2026-1792496766
Updated
2026-11-02
OSVCLSA-2026-1792496994No score

TuxCare security update for dompurify (7 CVEs)

TuxCare rebuilt dompurify to address 7 CVEs. Fixed in 3.0.11-tuxcare.3.

Record
CLSA-2026-1792496994
Updated
2026-11-02
OSVCLSA-2026-1792593858No score

TuxCare security update for dompurify (8 CVEs)

TuxCare rebuilt dompurify to address 8 CVEs. Fixed in 3.1.3-tuxcare.3.

Record
CLSA-2026-1792593858
Updated
2026-11-02
OSVCLSA-2026-1792593965No score

TuxCare security update for dompurify (10 CVEs)

TuxCare rebuilt dompurify to address 10 CVEs. Fixed in 3.1.2-tuxcare.3.

Record
CLSA-2026-1792593965
Updated
2026-11-02
OSVCLSA-2026-1792594075No score

TuxCare security update for dompurify (11 CVEs)

TuxCare rebuilt dompurify to address 11 CVEs. Fixed in 3.1.1-tuxcare.3.

Record
CLSA-2026-1792594075
Updated
2026-11-02
OSVCLSA-2026-1792594185No score

TuxCare security update for dompurify (8 CVEs)

TuxCare rebuilt dompurify to address 8 CVEs. Fixed in 3.1.4-tuxcare.3.

Record
CLSA-2026-1792594185
Updated
2026-11-02
OSVCLSA-2026-1792929243No score

TuxCare security update for dompurify (7 CVEs)

TuxCare rebuilt dompurify to address 7 CVEs. Fixed in 3.0.6-tuxcare.5.

Record
CLSA-2026-1792929243
Updated
2026-11-02
OSVCLSA-2026-1792933945No score

TuxCare security update for dompurify (12 CVEs)

TuxCare rebuilt dompurify to address 12 CVEs. Fixed in 3.4.0-tuxcare.1.

Record
CLSA-2026-1792933945
Updated
2026-11-02
OSVCLSA-2026-1793101871No score

TuxCare security update for dompurify (11 CVEs)

TuxCare rebuilt dompurify to address 11 CVEs. Fixed in 3.0.5-tuxcare.4.

Record
CLSA-2026-1793101871
Updated
2026-11-02
OSVCLSA-2026-1793102041No score

TuxCare security update for dompurify (11 CVEs)

TuxCare rebuilt dompurify to address 11 CVEs. Fixed in 3.0.4-tuxcare.4.

Record
CLSA-2026-1793102041
Updated
2026-11-02
OSVGHSA-x4vx-rjvf-j5p4No score

DOMPurify: `IN_PLACE` mode trusts attacker-controlled `nodeName` on live non-form nodes, allowing script retention and XSS via attacker-supplied DOM objects

Summary

When DOMPurify.sanitize(root, { IN_PLACE: true }) is called on an attacker-supplied live DOM node, DOMPurify still trusts currentNode.nodeName for non-form nodes in the main _sanitizeElements pipeline. A real <script> child node whose observable nodeName is attacker-controlled can therefore be misclassified as an allowed element and retained. When the sanitized tree is inserted into a live document, the script executes.

This affects current 3.4.6. The recent IN_PLACE hardening work covers clobbered form handling and foreign-realm shadow/template traversal, but does not harden the main per-node element decision for hostile non-form live nodes.

Affected

  • DOMPurify 3.4.6
  • Any caller that does DOMPurify.sanitize(node, { IN_PLACE: true }) on attacker-supplied live DOM nodes
  • Verified attacker-controlled node sources:
    • same-origin iframe → live node passed by reference
    • same-origin window.open() popup → live node passed by reference
    • same-origin foreign node adopted into the host document via document.adoptNode(node) and then sanitized in-place

Not affected:

  • String-input DOMPurify.sanitize(dirtyString)

Vulnerability details

Code paths

[A] — _sanitizeElements uses the instance-visible nodeName for the allow/forbid decision:

const _sanitizeElements = function (currentNode: any): boolean {
  ...
  if (_isClobbered(currentNode)) {
    _forceRemove(currentNode);
    return true;
  }

  const tagName = transformCaseFunc(currentNode.nodeName);
  ...
  if (
    FORBID_TAGS[tagName] ||
    (!(...) && !ALLOWED_TAGS[tagName])
  ) {
    ...
    _forceRemove(currentNode);
    return true;
  }
  ...
};

For non-form nodes, _isClobbered(currentNode) returns false early. The subsequent element decision therefore trusts currentNode.nodeName directly.

[B] — _isClobbered is form-specific:

const _isClobbered = function (element: Element): boolean {
  const realTagName = getNodeName ? getNodeName(element) : null;
  if (typeof realTagName !== 'string') {
    return false;
  }

  if (transformCaseFunc(realTagName) !== 'form') {
    return false;
  }

  return (...);
};

The hardening is intentionally scoped to form. Non-form nodes are not checked for divergence between the instance-visible property view and the trusted prototype getter view.

Why the bypass works

The attack does not depend on string HTML parsing. It depends on a hostile live DOM object crossing a trust boundary into DOMPurify's IN_PLACE pipeline.

If the attacker controls a same-origin subcontext (iframe or popup), they can prepare a real DOM subtree there and then pass the live node object by reference to a host page that trusts DOMPurify.sanitize(node, { IN_PLACE: true }) as its final sanitization step.

For the verified primitive below:

  • the real child node is <script>
  • its script text is attacker-controlled
  • the observable nodeName is attacker-controlled and made to appear as "DIV"
  • _sanitizeElements therefore classifies the real <script> child as an allowed element
  • the real <script> survives in the sanitized tree and executes on insertion

This primitive survives:

  • direct reference passing
  • document.adoptNode(node) followed by IN_PLACE

It does not survive:

  • importNode
  • cloneNode

because those paths materialize a fresh node and discard the hostile object semantics.

Proof of concept

(1) Minimal — runnable in a single browser context

<!doctype html>
<html><body>
<script src="dist/purify.js"></script>
<script>
  const foreign = window.open('about:blank', '_blank', 'noopener=no');

  const host = foreign.document.createElement('div');
  const script = foreign.document.createElement('script');
  script.textContent = 'window.__pwned = 1';
  Object.defineProperty(script, 'nodeName', {
    value: 'DIV',
    configurable: true,
  });
  host.appendChild(script);

  DOMPurify.sanitize(host, {…
Record
GHSA-x4vx-rjvf-j5p4
Weakness
CWE-79
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
dompurify
npm
through 3.4.6None known
dompurify
TuxCare:npm
From an advisory covering 2 CVEs
3.0.3-tuxcare.0 up to 3.0.3-tuxcare.2, plus listed versions
3.0.33.0.3-tuxcare.1
3.0.3-tuxcare.2
dompurify
TuxCare:npm
2.5.8-tuxcare.0 up to 2.5.8-tuxcare.5, plus listed versions
2.5.82.5.8-tuxcare.12.5.8-tuxcare.22.5.8-tuxcare.32.5.8-tuxcare.4
2.5.8-tuxcare.5
dompurify
TuxCare:npm
2.4.7-tuxcare.0 up to 2.4.7-tuxcare.3, plus listed versions
2.4.72.4.7-tuxcare.12.4.7-tuxcare.2
2.4.7-tuxcare.3
dompurify
TuxCare:npm
From an advisory covering 2 CVEs
3.2.3-tuxcare.0 up to 3.2.3-tuxcare.2, plus listed versions
3.2.33.2.3-tuxcare.1
3.2.3-tuxcare.2
dompurify
TuxCare:npm
2.4.3-tuxcare.0 up to 2.4.3-tuxcare.5, plus listed versions
2.4.32.4.3-tuxcare.12.4.3-tuxcare.22.4.3-tuxcare.32.4.3-tuxcare.4
2.4.3-tuxcare.5
dompurify
TuxCare:npm
2.4.0-tuxcare.0 up to 2.4.0-tuxcare.3, plus listed versions
2.4.02.4.0-tuxcare.12.4.0-tuxcare.2
2.4.0-tuxcare.3
dompurify
TuxCare:npm
2.3.0-tuxcare.0 up to 2.3.0-tuxcare.4, plus listed versions
2.3.02.3.0-tuxcare.12.3.0-tuxcare.22.3.0-tuxcare.3
2.3.0-tuxcare.4
dompurify
TuxCare:npm
From an advisory covering 9 CVEs
3.2.3-tuxcare.0 up to 3.2.3-tuxcare.3, plus listed versions
3.2.33.2.3-tuxcare.13.2.3-tuxcare.2
3.2.3-tuxcare.3
dompurify
TuxCare:npm
From an advisory covering 8 CVEs
3.2.7-tuxcare.0 up to 3.2.7-tuxcare.1, plus listed versions
3.2.7
3.2.7-tuxcare.1
Show 32 moreShow less
Affected packages
PackageAffectedFixed
dompurify
TuxCare:npm
From an advisory covering 8 CVEs
2.4.0-tuxcare.0 up to 2.4.0-tuxcare.5, plus listed versions
2.4.02.4.0-tuxcare.12.4.0-tuxcare.22.4.0-tuxcare.32.4.0-tuxcare.4
2.4.0-tuxcare.5
dompurify
TuxCare:npm
From an advisory covering 11 CVEs
2.4.3-tuxcare.0 up to 2.4.3-tuxcare.8, plus listed versions
2.4.32.4.3-tuxcare.12.4.3-tuxcare.22.4.3-tuxcare.32.4.3-tuxcare.42.4.3-tuxcare.52.4.3-tuxcare.62.4.3-tuxcare.7
2.4.3-tuxcare.8
dompurify
TuxCare:npm
From an advisory covering 13 CVEs
3.1.0-tuxcare.0 up to 3.1.0-tuxcare.2, plus listed versions
3.1.03.1.0-tuxcare.1
3.1.0-tuxcare.2
dompurify
TuxCare:npm
From an advisory covering 4 CVEs
3.4.6-tuxcare.0 up to 3.4.6-tuxcare.2, plus listed versions
3.4.63.4.6-tuxcare.1
3.4.6-tuxcare.2
dompurify
TuxCare:npm
From an advisory covering 10 CVEs
2.0.8-tuxcare.0 up to 2.0.8-tuxcare.3, plus listed versions
2.0.82.0.8-tuxcare.12.0.8-tuxcare.2
2.0.8-tuxcare.3
dompurify
TuxCare:npm
From an advisory covering 12 CVEs
2.3.3-tuxcare.0 up to 2.3.3-tuxcare.3, plus listed versions
2.3.32.3.3-tuxcare.12.3.3-tuxcare.2
2.3.3-tuxcare.3
dompurify
TuxCare:npm
From an advisory covering 9 CVEs
3.3.3-tuxcare.0 up to 3.3.3-tuxcare.3, plus listed versions
3.3.33.3.3-tuxcare.13.3.3-tuxcare.2
3.3.3-tuxcare.3
dompurify
TuxCare:npm
From an advisory covering 9 CVEs
3.2.6-tuxcare.0 up to 3.2.6-tuxcare.3, plus listed versions
3.2.63.2.6-tuxcare.13.2.6-tuxcare.2
3.2.6-tuxcare.3
dompurify
TuxCare:npm
From an advisory covering 13 CVEs
2.3.10-tuxcare.0 up to 2.3.10-tuxcare.3, plus listed versions
2.3.102.3.10-tuxcare.12.3.10-tuxcare.2
2.3.10-tuxcare.3
dompurify
TuxCare:npm
From an advisory covering 10 CVEs
3.0.1-tuxcare.0 up to 3.0.1-tuxcare.3, plus listed versions
3.0.13.0.1-tuxcare.13.0.1-tuxcare.2
3.0.1-tuxcare.3
dompurify
TuxCare:npm
From an advisory covering 4 CVEs
3.4.5-tuxcare.0 up to 3.4.5-tuxcare.3, plus listed versions
3.4.53.4.5-tuxcare.13.4.5-tuxcare.2
3.4.5-tuxcare.3
dompurify
TuxCare:npm
From an advisory covering 10 CVEs
3.0.2-tuxcare.0 up to 3.0.2-tuxcare.3, plus listed versions
3.0.23.0.2-tuxcare.13.0.2-tuxcare.2
3.0.2-tuxcare.3
dompurify
TuxCare:npm
From an advisory covering 8 CVEs
3.0.8-tuxcare.0 up to 3.0.8-tuxcare.3, plus listed versions
3.0.83.0.8-tuxcare.13.0.8-tuxcare.2
3.0.8-tuxcare.3
dompurify
TuxCare:npm
From an advisory covering 9 CVEs
3.0.9-tuxcare.0 up to 3.0.9-tuxcare.3, plus listed versions
3.0.93.0.9-tuxcare.13.0.9-tuxcare.2
3.0.9-tuxcare.3
dompurify
TuxCare:npm
From an advisory covering 7 CVEs
3.0.11-tuxcare.0 up to 3.0.11-tuxcare.3, plus listed versions
3.0.113.0.11-tuxcare.13.0.11-tuxcare.2
3.0.11-tuxcare.3
dompurify
TuxCare:npm
From an advisory covering 8 CVEs
3.1.3-tuxcare.0 up to 3.1.3-tuxcare.3, plus listed versions
3.1.33.1.3-tuxcare.13.1.3-tuxcare.2
3.1.3-tuxcare.3
dompurify
TuxCare:npm
From an advisory covering 10 CVEs
3.1.2-tuxcare.0 up to 3.1.2-tuxcare.3, plus listed versions
3.1.23.1.2-tuxcare.13.1.2-tuxcare.2
3.1.2-tuxcare.3
dompurify
TuxCare:npm
From an advisory covering 11 CVEs
3.1.1-tuxcare.0 up to 3.1.1-tuxcare.3, plus listed versions
3.1.13.1.1-tuxcare.13.1.1-tuxcare.2
3.1.1-tuxcare.3
dompurify
TuxCare:npm
From an advisory covering 8 CVEs
3.1.4-tuxcare.0 up to 3.1.4-tuxcare.3, plus listed versions
3.1.43.1.4-tuxcare.13.1.4-tuxcare.2
3.1.4-tuxcare.3
dompurify
TuxCare:npm
From an advisory covering 5 CVEs
3.0.6-tuxcare.0 up to 3.0.6-tuxcare.5, plus listed versions
3.0.63.0.6-tuxcare.13.0.6-tuxcare.23.0.6-tuxcare.33.0.6-tuxcare.4
3.0.6-tuxcare.5
dompurify
TuxCare:npm
From an advisory covering 9 CVEs
3.4.0-tuxcare.0 up to 3.4.0-tuxcare.1, plus listed versions
3.4.0
3.4.0-tuxcare.1
dompurify
TuxCare:npm
From an advisory covering 10 CVEs
3.0.5-tuxcare.0 up to 3.0.5-tuxcare.4, plus listed versions
3.0.53.0.5-tuxcare.13.0.5-tuxcare.23.0.5-tuxcare.3
3.0.5-tuxcare.4
dompurify
TuxCare:npm
From an advisory covering 10 CVEs
3.0.4-tuxcare.0 up to 3.0.4-tuxcare.4, plus listed versions
3.0.43.0.4-tuxcare.13.0.4-tuxcare.23.0.4-tuxcare.3
3.0.4-tuxcare.4
node-dompurify
Debian:12
All versions, plus listed versions
2.4.1+dfsg+~2.4.0-12.4.1+dfsg+~2.4.0-22.4.1+dfsg+~2.4.0-2+deb12u13.0.9+dfsg+~3.0.5-13.1.6+dfsg+~3.0.5-1
Show 13 moreShow less
3.1.7+dfsg+~3.0.5-13.1.7+dfsg+~3.0.5-23.2.5+dfsg-13.3.2+dfsg-13.3.3+dfsg-13.3.3+dfsg-23.4.1+dfsg-13.4.12+dfsg-13.4.13+dfsg-13.4.13+dfsg-23.4.16+dfsg-13.4.2+dfsg-13.4.5+dfsg-1
None known
node-dompurify
Debian:13
All versions, plus listed versions
3.1.7+dfsg+~3.0.5-23.2.5+dfsg-13.3.2+dfsg-13.3.3+dfsg-13.3.3+dfsg-2
Show 7 moreShow less
3.4.1+dfsg-13.4.12+dfsg-13.4.13+dfsg-13.4.13+dfsg-23.4.16+dfsg-13.4.2+dfsg-13.4.5+dfsg-1
None known
node-dompurify
Debian:14
before 3.4.12+dfsg-1, plus listed versions
3.1.7+dfsg+~3.0.5-23.2.5+dfsg-13.3.2+dfsg-13.3.3+dfsg-13.3.3+dfsg-23.4.1+dfsg-13.4.2+dfsg-13.4.5+dfsg-1
3.4.12+dfsg-1
grafana12.4
Red Hat:hummingbird:1
From an advisory covering 8 CVEs
before 0:12.4.8-0.1.2.hum1
0:12.4.8-0.1.2.hum1
grafana13.1
Red Hat:hummingbird:1
From an advisory covering 4 CVEs
before 0:13.1.3-0.1.3.hum1
0:13.1.3-0.1.3.hum1
node-dompurify
Ubuntu:22.04:LTS
All versions, plus listed versions
2.3.0+dfsg-22.3.3+dfsg-1
None known
node-dompurify
Ubuntu:24.04:LTS
All versions, plus listed versions
2.4.1+dfsg+~2.4.0-13.0.9+dfsg+~3.0.5-1
None known
node-dompurify
Ubuntu:26.10
All versions, plus listed versions
3.3.3+dfsg-13.4.2+dfsg-13.4.5+dfsg-13.4.12+dfsg-13.4.13+dfsg-13.4.13+dfsg-2
None known
node-dompurify
Ubuntu:26.04:LTS
All versions, plus listed versions
3.1.7+dfsg+~3.0.5-23.3.3+dfsg-1
None known

History

History
RecordedChangedSources
affected, aliases, published, references
affected
factsOSV
affected
first indexedCVE List, EUVD, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-65901 is a medium vulnerability (CVSS 5.1) in Cure53 Dompurify, published June 15, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.29%, the 21st percentile. Fixed in dompurify 2.5.8-tuxcare.5.

References

Show 55 moreShow less
This page doesn't list everything

Left out here: the rest of 2 source descriptions. The JSON record has them.

MoveEnter Open