CVE-2026-65898
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.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- Low
- User interaction
- Passive
What an attacker can affect
- Confidentiality
- None
- Integrity
- None
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used 5.1
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.
- Record
CVE-2026-65898- CVSS 4.0
- 5.1 Medium
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N - CVSS 3.1
- 7.2 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N - Weakness
- CWE-79
- Updated
- 2026-11-02
EUVDEUVD-2026-48286 5.1
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.
- Record
EUVD-2026-48286- CVSS 4.0
- 5.1 Medium
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-2cf5-4w76-r9qv 7.3
Arbitrary Code Execution in handlebars
Versions of handlebars prior to 3.0.8 or 4.5.2 are vulnerable to Arbitrary Code Execution. The package's lookup helper fails to properly validate templates, allowing attackers to submit templates that execute arbitrary JavaScript in the system. It can be used to run arbitrary code in a server processing Handlebars templates or on a victim's browser (effectively serving as Cross-Site Scripting).
The following template can be used to demonstrate the vulnerability:
{{#with split as |a|}}
{{pop (push "alert('Vulnerable Handlebars JS');")}}
{{#with (concat (lookup join (slice 0 1)))}}
{{#each (slice 2 3)}}
{{#with (apply 0 a)}}
{{.}}
{{/with}}
{{/each}}
{{/with}}
{{/with}}
{{/with}}```
## Recommendation
Upgrade to version 3.0.8, 4.5.2 or later.
- Record
GHSA-2cf5-4w76-r9qv- CVSS 3.1
- 7.3 High
CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:C/C:L/I:H/A:L - Weakness
- CWE-94
- Updated
- 2026-11-02
GitHub AdvisoriesGHSA-55q2-fjhq-7xh7 5.1
DOMPurify: IN_PLACE hook removal leaves a detached subtree executable, causing XSS
Summary
During IN_PLACE sanitization, a hook that removes an element can leave that element's detached descendants executable. A descendant image can retain its attacker-provided onload handler and fire after sanitize() returns, even though the returned root is clean and the image remains disconnected from the document.
Details
In DOMPurify 3.4.12, _sanitizeElements() in src/purify.ts:1862-1904 runs the beforeSanitizeElements or uponSanitizeElement hook and returns immediately when the hook detached the current node. The return does not call _neutralizeSubtree(currentNode).
The detached subtree is not added to DOMPurify.removed, so the post-walk IN_PLACE neutralization cannot reach it. If the browser queued a resource event while the application constructed the detached dirty root, a descendant can therefore retain its handler and execute after sanitization.
The hook only rejects the containing element and does not add or approve the event handler. DOMPurify's ordinary removal path de-arms the same queued event; only the hook-detachment early return skips the existing subtree neutralization.
PoC
Load the published dompurify@3.4.12 dist/purify.js before this script in Chromium:
<div id="result">not fired</div>
<script>
const root = document.createElement('div');
root.innerHTML = `
<footer>
<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
onload="result.textContent = 'XSS after sanitize'">
</footer>
<div>safe</div>`;
DOMPurify.setConfig({
ALLOWED_TAGS: ['div', '#text', 'footer'],
IN_PLACE: true
});
DOMPurify.addHook('uponSanitizeElement', node => {
if (node.tagName === 'FOOTER') node.remove();
});
DOMPurify.sanitize(root);
document.body.append(root);
</script>
sanitize() returns with no handler execution and the returned root contains only the safe div. After the event loop advances, the original image remains disconnected but its retained onload changes the page to XSS after sanitize.
As the claim-matched control, use the same detached input with ALLOWED_TAGS: ['div', '#text'] and no hook. DOMPurify's ordinary removal path removes the original image's handler, the returned root is still <div>safe</div>, and the marker does not fire.
Impact
In an application that uses IN_PLACE with the documented element-removal hook pattern, an attacker who can supply HTML can execute JavaScript in the integrating application's origin after the application sanitizes and renders that content.
The required non-default configuration is IN_PLACE plus a hook that removes a containing element. The hook does not add or approve the event handler, and the dirty root never needs to be connected before sanitization.
Suggested fix
Reuse the existing _neutralizeSubtree(currentNode) helper before returning from both hook-detachment branches in _sanitizeElements(). Add regressions for beforeSanitizeElements and uponSanitizeElement that retain a reference to a descendant resource element and verify that its event handler is removed after the hook detaches its ancestor.
- Record
GHSA-55q2-fjhq-7xh7- CVSS 4.0
- 5.1 Medium
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N - Weakness
- CWE-79
- Updated
- 2026-11-02
GitHub AdvisoriesGHSA-cmwh-pvxp-8882 5.1
DOMPurify: Permanent `ALLOWED_ATTR` pollution via `setConfig()` bypassing the hook clone-guard (incomplete fix of the 3.4.7 hook-pollution patch)
Summary
DOMPurify 3.4.7 shipped a security fix ("permanent hook pollution") that makes a registered uponSanitizeAttribute hook's mutation of data.allowedAttributes non-persistent — so allowing an attribute for one element does not leak into later sanitize() calls. The fix clones ALLOWED_ATTR inside _parseConfig.
That guard is silently bypassed whenever the application uses the persistent-config API DOMPurify.setConfig(). setConfig() sets the module flag SET_CONFIG = true, which causes sanitize() to skip _parseConfig entirely — and the clone-guard lives inside _parseConfig. The hook is then handed the live, shared ALLOWED_ATTR object; any data.allowedAttributes[name] = true it writes mutates that shared object permanently, for the lifetime of the DOMPurify instance, across every subsequent call, and across all elements.
If an application uses setConfig() together with an uponSanitizeAttribute hook that conditionally allows a dangerous attribute (onerror, onclick, onmouseover, srcdoc, formaction, …) for "trusted" elements, then one trusted render permanently allows that attribute on untrusted, attacker-controlled content — yielding stored XSS in viewers' browsers. DOMPurify applies no separate /^on/ event-handler blocklist: attribute stripping is governed entirely by the allowlist, so a polluted allowlist is the only gate, and survival in the output is final.
Affected configuration (preconditions)
The vulnerability is triggered when an application does both:
- Calls
DOMPurify.setConfig(...)once (the recommended pattern for a fixed, persistent policy), and - Registers an
uponSanitizeAttributehook that writesdata.allowedAttributes[name] = trueto conditionally allow an attribute (e.g. only for elements bearing a trust marker).
This hook pattern is demonstrated in DOMPurify's own test suite, and the per-call variant of exactly this leak is what 3.4.7 was released to fix.
Root cause (source: src/purify.ts, v3.4.10)
The 3.4.7 clone-guard — only inside _parseConfig:
// src/purify.ts _parseConfig() (lines ~950-968)
// "if a hook is registered AND the set still points at the default constant, clone it.
// The hook then mutates the clone ... and the next default-cfg call rebinds to the untouched original."
if ( ... && hooks.uponSanitizeAttribute.length > 0) {
ALLOWED_TAGS = clone(ALLOWED_TAGS); // line 961
}
if ( ... hooks.uponSanitizeAttribute.length > 0 ... ) {
ALLOWED_ATTR = clone(ALLOWED_ATTR); // line 968
}
sanitize() skips _parseConfig on the persistent-config path:
// src/purify.ts DOMPurify.sanitize() (line 2369)
if (!SET_CONFIG) {
_parseConfig(cfg); // <-- clone-guard lives in here; SKIPPED when SET_CONFIG is true
}
setConfig() sets the flag that disables the guard:
// src/purify.ts (lines 2596-2598)
DOMPurify.setConfig = function (cfg = {}) {
_parseConfig(cfg);
SET_CONFIG = true; // every later sanitize() now skips _parseConfig
};
The hook is handed the live allowlist binding, and there is no secondary event-handler defense:
// src/purify.ts (line 2088) — hook event exposes the shared object by reference
allowedAttributes: ALLOWED_ATTR,
// (line 2108) hooks.uponSanitizeAttribute executed; a write to data.allowedAttributes mutates ALLOWED_ATTR itself
// _isValidAttribute gates purely on ALLOWED_ATTR[lcName]; DOMPurify uses NO /^on/ blocklist by design.
Net: after setConfig(), the clone-guard never runs, so the hook's allowedAttributes mutation is a permanent write to the instance's shared ALLOWED_ATTR.
Proof of Concept
Environment: npm i dompurify@3.4.10 jsdom (Node; identical mechanism to isomorphic-dompurify, and to a browser instance).
PoC 1 — the leak (trusted render permanently allows onerror on attacker content)
const createDOMPurify =…
- Record
GHSA-cmwh-pvxp-8882- CVSS 4.0
- 5.1 Medium
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N - Weakness
- CWE-79, CWE-471, CWE-665
- Updated
- 2026-11-02
GitHub AdvisoriesGHSA-q42p-pg8m-cqh6 7.3
Prototype Pollution in handlebars
Versions of handlebars prior to 4.0.14 are vulnerable to Prototype Pollution. Templates may alter an Objects' prototype, thus allowing an attacker to execute arbitrary code on the server.
Recommendation
For handlebars 4.1.x upgrade to 4.1.2 or later. For handlebars 4.0.x upgrade to 4.0.14 or later.
- Record
GHSA-q42p-pg8m-cqh6- CVSS 3.1
- 7.3 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L - Weakness
- CWE-471
- Updated
- 2026-11-02
Show 53 moreShow less
GitHub AdvisoriesGHSA-g9r4-xpmj-mj65No score
Prototype Pollution in handlebars
Versions of handlebars prior to 3.0.8 or 4.5.3 are vulnerable to prototype pollution. It is possible to add or modify properties to the Object prototype through a malicious template. This may allow attackers to crash the application or execute Arbitrary Code in specific conditions.
Recommendation
Upgrade to version 3.0.8, 4.5.3 or later.
- Record
GHSA-g9r4-xpmj-mj65- Weakness
- CWE-1321
- Updated
- 2026-11-02
GitHub AdvisoriesGHSA-q2c6-c6pm-g3ghNo score
Arbitrary Code Execution in handlebars
Versions of handlebars prior to 3.0.8 or 4.5.3 are vulnerable to Arbitrary Code Execution. The package's lookup helper fails to properly validate templates, allowing attackers to submit templates that execute arbitrary JavaScript in the system. It is due to an incomplete fix for a previous issue. This vulnerability can be used to run arbitrary code in a server processing Handlebars templates or on a victim's browser (effectively serving as Cross-Site Scripting).
Recommendation
Upgrade to version 3.0.8, 4.5.3 or later.
- Record
GHSA-q2c6-c6pm-g3gh- Updated
- 2026-11-02
NVD 5.1
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.
- Record
CVE-2026-65898- CVSS 4.0
- 5.1 Medium
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/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
- 7.2 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N - Weakness
- CWE-79
- Updated
- 2026-11-02
OSV 5.1
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.
- Record
CVE-2026-65898- CVSS 4.0
- 5.1 Medium
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N - Weakness
- CWE-79
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-65898 5.1
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.
- Record
DEBIAN-CVE-2026-65898- CVSS 4.0
- 5.1 Medium
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/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 - Updated
- 2026-11-02
OSVGHSA-2cf5-4w76-r9qv 7.3
Arbitrary Code Execution in handlebars
Versions of handlebars prior to 3.0.8 or 4.5.2 are vulnerable to Arbitrary Code Execution. The package's lookup helper fails to properly validate templates, allowing attackers to submit templates that execute arbitrary JavaScript in the system. It can be used to run arbitrary code in a server processing Handlebars templates or on a victim's browser (effectively serving as Cross-Site Scripting).
The following template can be used to demonstrate the vulnerability:
{{#with split as |a|}}
{{pop (push "alert('Vulnerable Handlebars JS');")}}
{{#with (concat (lookup join (slice 0 1)))}}
{{#each (slice 2 3)}}
{{#with (apply 0 a)}}
{{.}}
{{/with}}
{{/each}}
{{/with}}
{{/with}}
{{/with}}```
## Recommendation
Upgrade to version 3.0.8, 4.5.2 or later.
- Record
GHSA-2cf5-4w76-r9qv- CVSS 3.1
- 7.3 High
CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:C/C:L/I:H/A:L - Weakness
- CWE-94
- Updated
- 2026-11-02
OSVGHSA-55q2-fjhq-7xh7 5.1
DOMPurify: IN_PLACE hook removal leaves a detached subtree executable, causing XSS
Summary
During IN_PLACE sanitization, a hook that removes an element can leave that element's detached descendants executable. A descendant image can retain its attacker-provided onload handler and fire after sanitize() returns, even though the returned root is clean and the image remains disconnected from the document.
Details
In DOMPurify 3.4.12, _sanitizeElements() in src/purify.ts:1862-1904 runs the beforeSanitizeElements or uponSanitizeElement hook and returns immediately when the hook detached the current node. The return does not call _neutralizeSubtree(currentNode).
The detached subtree is not added to DOMPurify.removed, so the post-walk IN_PLACE neutralization cannot reach it. If the browser queued a resource event while the application constructed the detached dirty root, a descendant can therefore retain its handler and execute after sanitization.
The hook only rejects the containing element and does not add or approve the event handler. DOMPurify's ordinary removal path de-arms the same queued event; only the hook-detachment early return skips the existing subtree neutralization.
PoC
Load the published dompurify@3.4.12 dist/purify.js before this script in Chromium:
<div id="result">not fired</div>
<script>
const root = document.createElement('div');
root.innerHTML = `
<footer>
<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
onload="result.textContent = 'XSS after sanitize'">
</footer>
<div>safe</div>`;
DOMPurify.setConfig({
ALLOWED_TAGS: ['div', '#text', 'footer'],
IN_PLACE: true
});
DOMPurify.addHook('uponSanitizeElement', node => {
if (node.tagName === 'FOOTER') node.remove();
});
DOMPurify.sanitize(root);
document.body.append(root);
</script>
sanitize() returns with no handler execution and the returned root contains only the safe div. After the event loop advances, the original image remains disconnected but its retained onload changes the page to XSS after sanitize.
As the claim-matched control, use the same detached input with ALLOWED_TAGS: ['div', '#text'] and no hook. DOMPurify's ordinary removal path removes the original image's handler, the returned root is still <div>safe</div>, and the marker does not fire.
Impact
In an application that uses IN_PLACE with the documented element-removal hook pattern, an attacker who can supply HTML can execute JavaScript in the integrating application's origin after the application sanitizes and renders that content.
The required non-default configuration is IN_PLACE plus a hook that removes a containing element. The hook does not add or approve the event handler, and the dirty root never needs to be connected before sanitization.
Suggested fix
Reuse the existing _neutralizeSubtree(currentNode) helper before returning from both hook-detachment branches in _sanitizeElements(). Add regressions for beforeSanitizeElements and uponSanitizeElement that retain a reference to a descendant resource element and verify that its event handler is removed after the hook detaches its ancestor.
- Record
GHSA-55q2-fjhq-7xh7- CVSS 4.0
- 5.1 Medium
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N - Weakness
- CWE-79
- Updated
- 2026-11-02
OSVGHSA-cmwh-pvxp-8882 5.1
DOMPurify: Permanent `ALLOWED_ATTR` pollution via `setConfig()` bypassing the hook clone-guard (incomplete fix of the 3.4.7 hook-pollution patch)
Summary
DOMPurify 3.4.7 shipped a security fix ("permanent hook pollution") that makes a registered uponSanitizeAttribute hook's mutation of data.allowedAttributes non-persistent — so allowing an attribute for one element does not leak into later sanitize() calls. The fix clones ALLOWED_ATTR inside _parseConfig.
That guard is silently bypassed whenever the application uses the persistent-config API DOMPurify.setConfig(). setConfig() sets the module flag SET_CONFIG = true, which causes sanitize() to skip _parseConfig entirely — and the clone-guard lives inside _parseConfig. The hook is then handed the live, shared ALLOWED_ATTR object; any data.allowedAttributes[name] = true it writes mutates that shared object permanently, for the lifetime of the DOMPurify instance, across every subsequent call, and across all elements.
If an application uses setConfig() together with an uponSanitizeAttribute hook that conditionally allows a dangerous attribute (onerror, onclick, onmouseover, srcdoc, formaction, …) for "trusted" elements, then one trusted render permanently allows that attribute on untrusted, attacker-controlled content — yielding stored XSS in viewers' browsers. DOMPurify applies no separate /^on/ event-handler blocklist: attribute stripping is governed entirely by the allowlist, so a polluted allowlist is the only gate, and survival in the output is final.
Affected configuration (preconditions)
The vulnerability is triggered when an application does both:
- Calls
DOMPurify.setConfig(...)once (the recommended pattern for a fixed, persistent policy), and - Registers an
uponSanitizeAttributehook that writesdata.allowedAttributes[name] = trueto conditionally allow an attribute (e.g. only for elements bearing a trust marker).
This hook pattern is demonstrated in DOMPurify's own test suite, and the per-call variant of exactly this leak is what 3.4.7 was released to fix.
Root cause (source: src/purify.ts, v3.4.10)
The 3.4.7 clone-guard — only inside _parseConfig:
// src/purify.ts _parseConfig() (lines ~950-968)
// "if a hook is registered AND the set still points at the default constant, clone it.
// The hook then mutates the clone ... and the next default-cfg call rebinds to the untouched original."
if ( ... && hooks.uponSanitizeAttribute.length > 0) {
ALLOWED_TAGS = clone(ALLOWED_TAGS); // line 961
}
if ( ... hooks.uponSanitizeAttribute.length > 0 ... ) {
ALLOWED_ATTR = clone(ALLOWED_ATTR); // line 968
}
sanitize() skips _parseConfig on the persistent-config path:
// src/purify.ts DOMPurify.sanitize() (line 2369)
if (!SET_CONFIG) {
_parseConfig(cfg); // <-- clone-guard lives in here; SKIPPED when SET_CONFIG is true
}
setConfig() sets the flag that disables the guard:
// src/purify.ts (lines 2596-2598)
DOMPurify.setConfig = function (cfg = {}) {
_parseConfig(cfg);
SET_CONFIG = true; // every later sanitize() now skips _parseConfig
};
The hook is handed the live allowlist binding, and there is no secondary event-handler defense:
// src/purify.ts (line 2088) — hook event exposes the shared object by reference
allowedAttributes: ALLOWED_ATTR,
// (line 2108) hooks.uponSanitizeAttribute executed; a write to data.allowedAttributes mutates ALLOWED_ATTR itself
// _isValidAttribute gates purely on ALLOWED_ATTR[lcName]; DOMPurify uses NO /^on/ blocklist by design.
Net: after setConfig(), the clone-guard never runs, so the hook's allowedAttributes mutation is a permanent write to the instance's shared ALLOWED_ATTR.
Proof of Concept
Environment: npm i dompurify@3.4.10 jsdom (Node; identical mechanism to isomorphic-dompurify, and to a browser instance).
PoC 1 — the leak (trusted render permanently allows onerror on attacker content)
const createDOMPurify =…
- Record
GHSA-cmwh-pvxp-8882- CVSS 4.0
- 5.1 Medium
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N - Weakness
- CWE-471, CWE-665, CWE-79
- Updated
- 2026-11-02
OSVGHSA-q42p-pg8m-cqh6 7.3
Prototype Pollution in handlebars
Versions of handlebars prior to 4.0.14 are vulnerable to Prototype Pollution. Templates may alter an Objects' prototype, thus allowing an attacker to execute arbitrary code on the server.
Recommendation
For handlebars 4.1.x upgrade to 4.1.2 or later. For handlebars 4.0.x upgrade to 4.0.14 or later.
- Record
GHSA-q42p-pg8m-cqh6- CVSS 3.1
- 7.3 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L - Weakness
- CWE-471
- Updated
- 2026-11-02
OSVRHSA-2026:58500 6.1
Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update
- Record
RHSA-2026:58500- CVSS 3.1
- 6.1 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N - Updated
- 2026-11-02
OSVRHSA-2026:58502 6.1
Red Hat Security Advisory: Red Hat Hardened Images RPMs bug fix and enhancement update
- Record
RHSA-2026:58502- CVSS 3.1
- 6.1 Medium
CVSS: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-65898 5.1
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.
- Record
UBUNTU-CVE-2026-65898- CVSS 4.0
- 5.1 Medium
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N - CVSS 3.1
- 7.2 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N - Updated
- 2026-11-02
OSVCLSA-2026-1774743817No score
TuxCare security update for handlebars (1 CVE)
TuxCare rebuilt handlebars to address 1 CVE. Fixed in 1.3.0-tuxcare.1.
- Record
CLSA-2026-1774743817- Updated
- 2026-11-02
OSVCLSA-2026-1774743830No score
TuxCare security update for handlebars (3 CVEs)
TuxCare rebuilt handlebars to address 3 CVEs. Fixed in 1.0.12-tuxcare.2.
- Record
CLSA-2026-1774743830- Updated
- 2026-11-02
OSVCLSA-2026-1784509816No score
TuxCare security update for dompurify (5 CVEs)
TuxCare rebuilt dompurify to address 5 CVEs. Fixed in 2.5.8-tuxcare.4.
- Record
CLSA-2026-1784509816- 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-1784596280No score
TuxCare security update for dompurify (1 CVE)
TuxCare rebuilt dompurify to address 1 CVE. Fixed in 2.4.7-tuxcare.2.
- Record
CLSA-2026-1784596280- Updated
- 2026-11-02
OSVCLSA-2026-1784596304No score
TuxCare security update for dompurify (1 CVE)
TuxCare rebuilt dompurify to address 1 CVE. Fixed in 2.4.3-tuxcare.4.
- Record
CLSA-2026-1784596304- Updated
- 2026-11-02
OSVCLSA-2026-1784596347No score
TuxCare security update for dompurify (1 CVE)
TuxCare rebuilt dompurify to address 1 CVE. Fixed in 2.4.0-tuxcare.2.
- Record
CLSA-2026-1784596347- Updated
- 2026-11-02
OSVCLSA-2026-1784682972No score
TuxCare security update for dompurify (1 CVE)
TuxCare rebuilt dompurify to address 1 CVE. Fixed in 2.3.0-tuxcare.3.
- Record
CLSA-2026-1784682972- 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-1786539981No score
TuxCare security update for dompurify (10 CVEs)
TuxCare rebuilt dompurify to address 10 CVEs. Fixed in 2.3.0-tuxcare.1.
- Record
CLSA-2026-1786539981- 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-1786636721No score
TuxCare security update for dompurify (14 CVEs)
TuxCare rebuilt dompurify to address 14 CVEs. Fixed in 2.4.7-tuxcare.1.
- Record
CLSA-2026-1786636721- 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-1786731948No score
TuxCare security update for dompurify (34 CVEs)
TuxCare rebuilt dompurify to address 34 CVEs. Fixed in 3.0.3-tuxcare.1.
- Record
CLSA-2026-1786731948- Updated
- 2026-11-02
OSVCLSA-2026-1786731971No score
TuxCare security update for dompurify (7 CVEs)
TuxCare rebuilt dompurify to address 7 CVEs. Fixed in 3.1.6-tuxcare.7.
- Record
CLSA-2026-1786731971- Updated
- 2026-11-02
OSVCLSA-2026-1787602039No score
TuxCare security update for dompurify (2 CVEs)
TuxCare rebuilt dompurify to address 2 CVEs. Fixed in 3.4.8-tuxcare.2.
- Record
CLSA-2026-1787602039- 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-1789152222No score
TuxCare security update for dompurify (11 CVEs)
TuxCare rebuilt dompurify to address 11 CVEs. Fixed in 2.3.0-tuxcare.5.
- Record
CLSA-2026-1789152222- 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-1789154068No score
TuxCare security update for dompurify (12 CVEs)
TuxCare rebuilt dompurify to address 12 CVEs. Fixed in 3.0.3-tuxcare.5.
- Record
CLSA-2026-1789154068- Updated
- 2026-11-02
OSVCLSA-2026-1789154458No score
TuxCare security update for dompurify (9 CVEs)
TuxCare rebuilt dompurify to address 9 CVEs. Fixed in 2.4.7-tuxcare.5.
- Record
CLSA-2026-1789154458- 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-1789155876No score
TuxCare security update for dompurify (8 CVEs)
TuxCare rebuilt dompurify to address 8 CVEs. Fixed in 2.5.8-tuxcare.7.
- Record
CLSA-2026-1789155876- Updated
- 2026-11-02
OSVCLSA-2026-1792150209No score
TuxCare security update for dompurify (9 CVEs)
TuxCare rebuilt dompurify to address 9 CVEs. Fixed in 3.4.5-tuxcare.2.
- Record
CLSA-2026-1792150209- Updated
- 2026-11-02
OSVCLSA-2026-1792154118No score
TuxCare security update for dompurify (2 CVEs)
TuxCare rebuilt dompurify to address 2 CVEs. Fixed in 3.4.9-tuxcare.2.
- Record
CLSA-2026-1792154118- Updated
- 2026-11-02
OSVCLSA-2026-1792155851No score
TuxCare security update for dompurify (12 CVEs)
TuxCare rebuilt dompurify to address 12 CVEs. Fixed in 3.1.3-tuxcare.2.
- Record
CLSA-2026-1792155851- Updated
- 2026-11-02
OSVCLSA-2026-1792155956No score
TuxCare security update for dompurify (5 CVEs)
TuxCare rebuilt dompurify to address 5 CVEs. Fixed in 2.3.3-tuxcare.2.
- Record
CLSA-2026-1792155956- Updated
- 2026-11-02
OSVCLSA-2026-1792156267No score
TuxCare security update for dompurify (9 CVEs)
TuxCare rebuilt dompurify to address 9 CVEs. Fixed in 3.1.2-tuxcare.2.
- Record
CLSA-2026-1792156267- Updated
- 2026-11-02
OSVCLSA-2026-1792156282No score
TuxCare security update for dompurify (11 CVEs)
TuxCare rebuilt dompurify to address 11 CVEs. Fixed in 3.1.4-tuxcare.2.
- Record
CLSA-2026-1792156282- Updated
- 2026-11-02
OSVCLSA-2026-1792156382No score
TuxCare security update for dompurify (9 CVEs)
TuxCare rebuilt dompurify to address 9 CVEs. Fixed in 3.0.2-tuxcare.2.
- Record
CLSA-2026-1792156382- Updated
- 2026-11-02
OSVCLSA-2026-1792156500No score
TuxCare security update for dompurify (6 CVEs)
TuxCare rebuilt dompurify to address 6 CVEs. Fixed in 2.0.8-tuxcare.2.
- Record
CLSA-2026-1792156500- Updated
- 2026-11-02
OSVCLSA-2026-1792156589No score
TuxCare security update for dompurify (10 CVEs)
TuxCare rebuilt dompurify to address 10 CVEs. Fixed in 3.0.9-tuxcare.2.
- Record
CLSA-2026-1792156589- Updated
- 2026-11-02
OSVCLSA-2026-1792156694No score
TuxCare security update for dompurify (11 CVEs)
TuxCare rebuilt dompurify to address 11 CVEs. Fixed in 3.0.8-tuxcare.2.
- Record
CLSA-2026-1792156694- Updated
- 2026-11-02
OSVCLSA-2026-1792156803No score
TuxCare security update for dompurify (5 CVEs)
TuxCare rebuilt dompurify to address 5 CVEs. Fixed in 2.3.10-tuxcare.2.
- Record
CLSA-2026-1792156803- Updated
- 2026-11-02
OSVCLSA-2026-1792156909No score
TuxCare security update for dompurify (10 CVEs)
TuxCare rebuilt dompurify to address 10 CVEs. Fixed in 3.0.1-tuxcare.2.
- Record
CLSA-2026-1792156909- 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-1792157113No score
TuxCare security update for dompurify (12 CVEs)
TuxCare rebuilt dompurify to address 12 CVEs. Fixed in 3.0.11-tuxcare.2.
- Record
CLSA-2026-1792157113- 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-1792157367No score
TuxCare security update for dompurify (4 CVEs)
TuxCare rebuilt dompurify to address 4 CVEs. Fixed in 3.4.7-tuxcare.2.
- Record
CLSA-2026-1792157367- Updated
- 2026-11-02
OSVCLSA-2026-1792159229No score
TuxCare security update for dompurify (3 CVEs)
TuxCare rebuilt dompurify to address 3 CVEs. Fixed in 3.4.10-tuxcare.2.
- Record
CLSA-2026-1792159229- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
handlebarsnpm | before 3.0.8 | 3.0.8 |
handlebarsnpm | 4.0.0 up to 4.5.2 | 4.5.2 |
dompurifynpm | through 3.4.12 | 3.4.13 |
dompurifynpm | through 3.4.10 | 3.4.11 |
handlebarsnpm | 4.0.0 up to 4.5.3 | 4.5.3 |
handlebarsnpm | 4.1.0 up to 4.1.2 | 4.1.2 |
handlebarsnpm | 4.0.0 up to 4.0.14 | 4.0.14 |
handlebarsnpm | before 3.0.7 | 3.0.7 |
handlebarsTuxCare:npm | 1.3.0-tuxcare.0 up to 1.3.0-tuxcare.1, plus listed versions 1.3.0 | 1.3.0-tuxcare.1 |
handlebarsTuxCare:npm | 1.0.12-tuxcare.0 up to 1.0.12-tuxcare.2, plus listed versions 1.0.121.0.12-tuxcare.1 | 1.0.12-tuxcare.2 |
Show 61 moreShow less
| Package | Affected | Fixed |
|---|---|---|
dompurifyTuxCare:npm From an advisory covering 2 CVEs | 2.5.8-tuxcare.0 up to 2.5.8-tuxcare.4, plus listed versions 2.5.82.5.8-tuxcare.12.5.8-tuxcare.22.5.8-tuxcare.3 | 2.5.8-tuxcare.4 |
dompurifyTuxCare: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 |
dompurifyTuxCare:npm | 2.4.7-tuxcare.0 up to 2.4.7-tuxcare.2, plus listed versions 2.4.72.4.7-tuxcare.1 | 2.4.7-tuxcare.2 |
dompurifyTuxCare:npm | 2.4.3-tuxcare.0 up to 2.4.3-tuxcare.4, plus listed versions 2.4.32.4.3-tuxcare.12.4.3-tuxcare.22.4.3-tuxcare.3 | 2.4.3-tuxcare.4 |
dompurifyTuxCare:npm | 2.4.0-tuxcare.0 up to 2.4.0-tuxcare.2, plus listed versions 2.4.02.4.0-tuxcare.1 | 2.4.0-tuxcare.2 |
dompurifyTuxCare:npm | 2.3.0-tuxcare.0 up to 2.3.0-tuxcare.3, plus listed versions 2.3.02.3.0-tuxcare.12.3.0-tuxcare.2 | 2.3.0-tuxcare.3 |
dompurifyTuxCare: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 |
dompurifyTuxCare: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 |
dompurifyTuxCare:npm From an advisory covering 6 CVEs | 3.1.6-tuxcare.0 up to 3.1.6-tuxcare.7, plus listed versions 3.1.63.1.6-tuxcare.13.1.6-tuxcare.23.1.6-tuxcare.33.1.6-tuxcare.43.1.6-tuxcare.53.1.6-tuxcare.6 | 3.1.6-tuxcare.7 |
dompurifyTuxCare:npm | 3.4.8-tuxcare.0 up to 3.4.8-tuxcare.2, plus listed versions 3.4.83.4.8-tuxcare.1 | 3.4.8-tuxcare.2 |
dompurifyTuxCare: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 |
dompurifyTuxCare:npm From an advisory covering 10 CVEs | 2.3.0-tuxcare.0 up to 2.3.0-tuxcare.5, plus listed versions 2.3.02.3.0-tuxcare.12.3.0-tuxcare.22.3.0-tuxcare.32.3.0-tuxcare.4 | 2.3.0-tuxcare.5 |
dompurifyTuxCare: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 |
dompurifyTuxCare:npm From an advisory covering 11 CVEs | 3.0.3-tuxcare.0 up to 3.0.3-tuxcare.5, plus listed versions 3.0.33.0.3-tuxcare.13.0.3-tuxcare.23.0.3-tuxcare.33.0.3-tuxcare.4 | 3.0.3-tuxcare.5 |
dompurifyTuxCare:npm From an advisory covering 8 CVEs | 2.4.7-tuxcare.0 up to 2.4.7-tuxcare.5, plus listed versions 2.4.72.4.7-tuxcare.12.4.7-tuxcare.22.4.7-tuxcare.32.4.7-tuxcare.4 | 2.4.7-tuxcare.5 |
dompurifyTuxCare: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 |
dompurifyTuxCare:npm From an advisory covering 7 CVEs | 2.5.8-tuxcare.0 up to 2.5.8-tuxcare.7, plus listed versions 2.5.82.5.8-tuxcare.12.5.8-tuxcare.22.5.8-tuxcare.32.5.8-tuxcare.42.5.8-tuxcare.52.5.8-tuxcare.6 | 2.5.8-tuxcare.7 |
dompurifyTuxCare:npm From an advisory covering 6 CVEs | 3.4.5-tuxcare.0 up to 3.4.5-tuxcare.2, plus listed versions 3.4.53.4.5-tuxcare.1 | 3.4.5-tuxcare.2 |
dompurifyTuxCare:npm From an advisory covering 2 CVEs | 3.4.9-tuxcare.0 up to 3.4.9-tuxcare.2, plus listed versions 3.4.93.4.9-tuxcare.1 | 3.4.9-tuxcare.2 |
dompurifyTuxCare:npm From an advisory covering 12 CVEs | 3.1.3-tuxcare.0 up to 3.1.3-tuxcare.2, plus listed versions 3.1.33.1.3-tuxcare.1 | 3.1.3-tuxcare.2 |
dompurifyTuxCare:npm From an advisory covering 5 CVEs | 2.3.3-tuxcare.0 up to 2.3.3-tuxcare.2, plus listed versions 2.3.32.3.3-tuxcare.1 | 2.3.3-tuxcare.2 |
dompurifyTuxCare:npm From an advisory covering 9 CVEs | 3.1.2-tuxcare.0 up to 3.1.2-tuxcare.2, plus listed versions 3.1.23.1.2-tuxcare.1 | 3.1.2-tuxcare.2 |
dompurifyTuxCare:npm From an advisory covering 11 CVEs | 3.1.4-tuxcare.0 up to 3.1.4-tuxcare.2, plus listed versions 3.1.43.1.4-tuxcare.1 | 3.1.4-tuxcare.2 |
dompurifyTuxCare:npm From an advisory covering 9 CVEs | 3.0.2-tuxcare.0 up to 3.0.2-tuxcare.2, plus listed versions 3.0.23.0.2-tuxcare.1 | 3.0.2-tuxcare.2 |
dompurifyTuxCare:npm From an advisory covering 6 CVEs | 2.0.8-tuxcare.0 up to 2.0.8-tuxcare.2, plus listed versions 2.0.82.0.8-tuxcare.1 | 2.0.8-tuxcare.2 |
dompurifyTuxCare:npm From an advisory covering 10 CVEs | 3.0.9-tuxcare.0 up to 3.0.9-tuxcare.2, plus listed versions 3.0.93.0.9-tuxcare.1 | 3.0.9-tuxcare.2 |
dompurifyTuxCare:npm From an advisory covering 11 CVEs | 3.0.8-tuxcare.0 up to 3.0.8-tuxcare.2, plus listed versions 3.0.83.0.8-tuxcare.1 | 3.0.8-tuxcare.2 |
dompurifyTuxCare:npm From an advisory covering 5 CVEs | 2.3.10-tuxcare.0 up to 2.3.10-tuxcare.2, plus listed versions 2.3.102.3.10-tuxcare.1 | 2.3.10-tuxcare.2 |
dompurifyTuxCare:npm From an advisory covering 10 CVEs | 3.0.1-tuxcare.0 up to 3.0.1-tuxcare.2, plus listed versions 3.0.13.0.1-tuxcare.1 | 3.0.1-tuxcare.2 |
dompurifyTuxCare: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 |
dompurifyTuxCare:npm From an advisory covering 12 CVEs | 3.0.11-tuxcare.0 up to 3.0.11-tuxcare.2, plus listed versions 3.0.113.0.11-tuxcare.1 | 3.0.11-tuxcare.2 |
dompurifyTuxCare: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 |
dompurifyTuxCare:npm From an advisory covering 3 CVEs | 3.4.7-tuxcare.0 up to 3.4.7-tuxcare.2, plus listed versions 3.4.73.4.7-tuxcare.1 | 3.4.7-tuxcare.2 |
dompurifyTuxCare:npm From an advisory covering 3 CVEs | 3.4.10-tuxcare.0 up to 3.4.10-tuxcare.2, plus listed versions 3.4.103.4.10-tuxcare.1 | 3.4.10-tuxcare.2 |
dompurifyTuxCare:npm From an advisory covering 5 CVEs | 3.3.3-tuxcare.0 up to 3.3.3-tuxcare.2, plus listed versions 3.3.33.3.3-tuxcare.1 | 3.3.3-tuxcare.2 |
dompurifyTuxCare:npm From an advisory covering 8 CVEs | 3.1.1-tuxcare.0 up to 3.1.1-tuxcare.2, plus listed versions 3.1.13.1.1-tuxcare.1 | 3.1.1-tuxcare.2 |
dompurifyTuxCare:npm From an advisory covering 10 CVEs | 3.2.6-tuxcare.0 up to 3.2.6-tuxcare.2, plus listed versions 3.2.63.2.6-tuxcare.1 | 3.2.6-tuxcare.2 |
dompurifyTuxCare:npm From an advisory covering 6 CVEs | 3.0.6-tuxcare.0 up to 3.0.6-tuxcare.3, plus listed versions 3.0.63.0.6-tuxcare.13.0.6-tuxcare.2 | 3.0.6-tuxcare.3 |
dompurifyTuxCare:npm From an advisory covering 5 CVEs | 3.0.5-tuxcare.0 up to 3.0.5-tuxcare.2, plus listed versions 3.0.53.0.5-tuxcare.1 | 3.0.5-tuxcare.2 |
dompurifyTuxCare:npm From an advisory covering 5 CVEs | 3.0.4-tuxcare.0 up to 3.0.4-tuxcare.2, plus listed versions 3.0.43.0.4-tuxcare.1 | 3.0.4-tuxcare.2 |
dompurifyTuxCare: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 |
dompurifyTuxCare: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 |
node-dompurifyDebian: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 less3.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-dompurifyDebian: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 less3.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-dompurifyDebian: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 |
dompurifynpm | before 3.4.13 | 3.4.13 |
dompurifynpm | before 3.4.11 | 3.4.11 |
grafana12.4Red 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.1Red 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 |
dompurifyRoot:npm | before 3.4.6-aikido.2 | 3.4.6-aikido.22.5.9-aikido.43.2.4-aikido.42.5.9-aikido.53.2.4-aikido.5 |
@rootio/dompurifyRoot:npm | before 3.4.6-root.io.2 | 3.4.6-root.io.22.5.9-root.io.43.2.4-root.io.42.5.9-root.io.53.2.4-root.io.5 |
handlebarsRoot:npm | before 3.0.7-aikido.3 | 3.0.7-aikido.33.0.3-aikido.23.0.8-aikido.13.0.8-aikido.2 |
@rootio/handlebarsRoot:npm | before 3.0.7-root.io.3 | 3.0.7-root.io.33.0.3-root.io.23.0.8-root.io.13.0.8-root.io.2 |
dompurifyRoot:npm | before 2.5.8-aikido.3 | 2.5.8-aikido.32.5.9-aikido.33.4.9-aikido.13.4.7-aikido.13.2.4-aikido.33.4.6-aikido.22.5.8-aikido.23.4.0-aikido.13.4.8-aikido.13.4.2-aikido.13.4.10-aikido.13.4.6-aikido.13.4.5-aikido.13.4.2-aikido.22.5.9-aikido.43.2.4-aikido.42.5.9-aikido.53.2.4-aikido.5 |
@rootio/dompurifyRoot:npm | before 2.5.8-root.io.3 | 2.5.8-root.io.32.5.9-root.io.33.4.9-root.io.13.4.7-root.io.13.2.4-root.io.33.4.6-root.io.22.5.8-root.io.23.4.0-root.io.13.4.8-root.io.13.4.2-root.io.13.4.10-root.io.13.4.6-root.io.13.4.5-root.io.13.4.2-root.io.22.5.9-root.io.43.2.4-root.io.42.5.9-root.io.53.2.4-root.io.5 |
handlebarsRoot:npm | before 3.0.3-aikido.2 | 3.0.3-aikido.23.0.7-aikido.13.0.7-aikido.23.0.7-aikido.3 |
@rootio/handlebarsRoot:npm | before 3.0.3-root.io.2 | 3.0.3-root.io.23.0.7-root.io.13.0.7-root.io.23.0.7-root.io.3 |
node-dompurifyUbuntu:22.04:LTS | All versions, plus listed versions 2.3.0+dfsg-22.3.3+dfsg-1 | None known |
node-dompurifyUbuntu: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-dompurifyUbuntu:26.04:LTS | All versions, plus listed versions 3.1.7+dfsg+~3.0.5-23.3.3+dfsg-1 | None known |
python-comfyui-frontend-packageopenSUSE:Tumbleweed From an advisory covering 3 CVEs | before 1.52.7-1.1 | 1.52.7-1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, aliases, cwes, references | ||
| affected | ||
| facts | ||
| affected | ||
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-65898 is a medium vulnerability (CVSS 5.1) in Cure53 Dompurify, published June 5, 2019. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.21%, the 11th percentile. Fixed in handlebars 3.0.8.
References
github.com/cure53/DOMPurify/security/advisories/GHSA-cmwh-pvxp-8882
vulncheck.com/advisories/dompurify-before-permanent-attribute-allowlist-pollution-via-setconfig
npmjs.com/advisories/1316
github.com/advisories/GHSA-2cf5-4w76-r9qv
github.com/cure53/DOMPurify/security/advisories/GHSA-55q2-fjhq-7xh7
github.com/cure53/DOMPurify/pull/1557
Show 80 moreShow less
github.com/cure53/DOMPurify/commit/3067f7746769
github.com/cure53/DOMPurify/releases/tag/3.4.13
github.com/advisories/GHSA-55q2-fjhq-7xh7
github.com/cure53/DOMPurify/pull/1482
github.com/cure53/DOMPurify/commit/011bc3b2fcc4be17aa76f9030e8668207717acb9
github.com/cure53/DOMPurify/releases/tag/3.4.11
github.com/advisories/GHSA-cmwh-pvxp-8882
npmjs.com/advisories/1325
github.com/advisories/GHSA-g9r4-xpmj-mj65
npmjs.com/advisories/1324
github.com/advisories/GHSA-q2c6-c6pm-g3gh
github.com/handlebars-lang/handlebars.js/issues/1495
github.com/handlebars-lang/handlebars.js/commit/7372d4e9dffc9d70c09671aa28b9392a1577fd86
snyk.io/vuln/SNYK-JS-HANDLEBARS-173692
npmjs.com/advisories/755
github.com/handlebars-lang/handlebars.js/commit/0d6d8c335ad81bad1b672fc56b6a44f6aa472dac
github.com/handlebars-lang/handlebars.js/commit/85c8783b34fc6d36145d8b53885ad0b9e3c3f9c4
github.com/handlebars-lang/handlebars.js/commit/cd38583216dce3252831916323202749431c773e
github.com/advisories/GHSA-q42p-pg8m-cqh6
github.com/CVEProject/cvelistV5/tree/main/cves/2026/65xxx/CVE-2026-65898.json
nvd.nist.gov/vuln/detail/CVE-2026-65898
security-tracker.debian.org/tracker/CVE-2026-65898
github.com/cure53/DOMPurify
access.redhat.com/errata/RHSA-2026:58500
access.redhat.com/security/cve/CVE-2026-65898
access.redhat.com/security/cve/CVE-2026-65899
access.redhat.com/security/cve/CVE-2026-65901
access.redhat.com/security/cve/CVE-2026-65902
access.redhat.com/security/cve/CVE-2026-65911
access.redhat.com/security/cve/CVE-2026-65912
access.redhat.com/security/cve/CVE-2026-65913
access.redhat.com/security/cve/CVE-2026-65914
access.redhat.com/security/updates/classification
images.redhat.com
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_58500.json
bugzilla.redhat.com/show_bug.cgi?id=2506436
cve.org/CVERecord?id=CVE-2026-65898
bugzilla.redhat.com/show_bug.cgi?id=2506428
cve.org/CVERecord?id=CVE-2026-65899
nvd.nist.gov/vuln/detail/CVE-2026-65899
github.com/cure53/DOMPurify/commit/825e617753ac1169306a542d3174a77f717a0cf6
github.com/cure53/DOMPurify/security/advisories/GHSA-vxr8-fq34-vvx9
vulncheck.com/advisories/dompurify-before-trusted-types-policy-state-contamination
bugzilla.redhat.com/show_bug.cgi?id=2506432
cve.org/CVERecord?id=CVE-2026-65901
nvd.nist.gov/vuln/detail/CVE-2026-65901
github.com/cure53/DOMPurify/security/advisories/GHSA-x4vx-rjvf-j5p4
vulncheck.com/advisories/dompurify-cross-site-scripting-via-in-place-nodename
bugzilla.redhat.com/show_bug.cgi?id=2506431
cve.org/CVERecord?id=CVE-2026-65902
nvd.nist.gov/vuln/detail/CVE-2026-65902
github.com/cure53/DOMPurify/commit/7996f1dc78eb8b7922388aed75d94a9f8fad9a36
github.com/cure53/DOMPurify/security/advisories/GHSA-76mc-f452-cxcm
vulncheck.com/advisories/dompurify-before-hook-mutation-pollution-via-allowedtags
bugzilla.redhat.com/show_bug.cgi?id=2506434
cve.org/CVERecord?id=CVE-2026-65911
nvd.nist.gov/vuln/detail/CVE-2026-65911
github.com/cure53/DOMPurify/security/advisories/GHSA-9p3w-6h5p-cv75
vulncheck.com/advisories/dompurify-before-xss-via-add-attr-add-tags-state-leakage
bugzilla.redhat.com/show_bug.cgi?id=2506427
cve.org/CVERecord?id=CVE-2026-65912
nvd.nist.gov/vuln/detail/CVE-2026-65912
github.com/cure53/DOMPurify/security/advisories/GHSA-cjmm-f4jc-qw8r
vulncheck.com/advisories/dompurify-before-uri-validation-bypass-via-add-attr
bugzilla.redhat.com/show_bug.cgi?id=2506429
cve.org/CVERecord?id=CVE-2026-65913
nvd.nist.gov/vuln/detail/CVE-2026-65913
github.com/cure53/DOMPurify/security/advisories/GHSA-cj63-jhhr-wcxv
vulncheck.com/advisories/dompurify-before-prototype-pollution-via-use-profiles
bugzilla.redhat.com/show_bug.cgi?id=2506430
cve.org/CVERecord?id=CVE-2026-65914
nvd.nist.gov/vuln/detail/CVE-2026-65914
github.com/cure53/DOMPurify/security/advisories/GHSA-h8r8-wccr-v5f2
vulncheck.com/advisories/dompurify-before-mutation-xss-via-re-contextualization
access.redhat.com/errata/RHSA-2026:58502
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_58502.json
ubuntu.com/security/CVE-2026-65898
suse.com/security/cve/CVE-2026-65898
suse.com/security/cve/CVE-2026-65899
suse.com/security/cve/CVE-2026-65900
Left out here: the rest of 2 source descriptions. The JSON record has them. Left out on purpose, here and in the API, to keep responses small: 17 source records.