ETK-2026-1359Zero's internal tracking ID, independent of the CVE number.
waiting for further signalsZero needs more public information before it can validate it.description
DOMPurify before 3.4.17 can fail to remove template expressions assembled within attached shadow-root content. An attacker may cause template injection or script execution if they control such DOM input and the application enables template-safe sanitization, uses a DOM-returning or in-place mode, and later evaluates the sanitized content as a template.
mitigation
Upgrade the npm package dompurify to version 3.4.17 or later. Until upgraded, avoid passing attacker-controlled attached shadow roots through DOM-returning or in-place sanitization when their content may reach a template evaluator.
fixed in 3.4.17
outcome
Contextual: an exploit technique exists, but no deterministic check could cover this one.
source signals
Public signals that triggered or updated the pipeline. These are inputs for the deltas above.
- 2026-10-12 12:40Zghsa: trigger signal, started the run
- 2026-10-12 12:40Z
this entry in the feed
GET /api/v1/feed/ETK-2026-1359
{ "etk_id": "ETK-2026-1359", "cve_id": null, "display_id": "ETK-2026-1359", "ghsa_id": "GHSA-cg2g-xh64-v4q7", "euvd_id": null, "status": "published", "anchor_state": "awaiting_cve", "title": "Shadow-root template injection bypass in DOMPurify", "summary": "DOMPurify before 3.4.17 can fail to remove template expressions assembled within attached shadow-root content. An attacker may cause template injection or script execution if they control such DOM input and the application enables template-safe sanitization, uses a DOM-returning or in-place mode, and later evaluates the sanitized content as a template.", "mitigation": "Upgrade the npm package `dompurify` to version 3.4.17 or later. Until upgraded, avoid passing attacker-controlled attached shadow roots through DOM-returning or in-place sanitization when their content may reach a template evaluator.", "vendor": "npm", "product": "npm:dompurify", "affected": [ { "affected_notes": [], "affected_ranges": [ ">= 3.4.4, <= 3.4.16" ], "ecosystem": "npm", "fixed_versions": [ "3.4.17" ], "package_name": "dompurify", "purl": "pkg:npm/dompurify" } ], "cwes": [ 79 ], "cvss_score": 7.2, "cvss_src": "cna_vendor", "cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N", "epss_score": null, "epss_percentile": null, "epss_asof": null, "automation": "contextual", "check": false, "check_confidence_basis": null, "exploit": false, "pipeline_minutes": 9.7330792, "t0_at": null, "signals": { "public_poc": { "at": "2026-10-12T12:40:50+00:00", "days": -8.931224450162038, "is_lower_bound": true, "measured_at": "2026-10-21T11:01:47.815291+00:00", "url": "https://github.com/cure53/DOMPurify/security/advisories/GHSA-cg2g-xh64-v4q7" }, "trigger_signal": { "at": "2026-10-12T12:40:50+00:00", "days": -8.931224450162038, "is_lower_bound": true, "measured_at": "2026-10-21T11:01:47.815291+00:00", "url": "https://github.com/cure53/DOMPurify/security/advisories/GHSA-cg2g-xh64-v4q7" } } }
published 2026-10-12 13:06Z
last change 2026-10-21 10:52Z
Need the technical details behind an entry?
Every entry here shows what we attempted and when. The technical details, the generated exploit that fired it and the evidence behind the verdict are not public. Tell us about your use case and we’ll get back to you about extended API access.