Read the docs

Namespace prefix bypass in sanitize-html enables XSS via SVG links

Priority MEDIUM 51CWE-79Published · Updated

Key facts

Attack vector
Network
Privileges required
Low
User interaction
Required
Attack complexity
High
Impact type
Cross-site scripting
Confidentiality · integrity · availability
Low · Low · None
Fix status
Partial Red Hat: 11 without a fix

Attack profile from CVSS 3.1 · CNA. Fix status from CNA, GitHub and Red Hat. Impact type from CWE-79.

Summary

The sanitize-html package from 2.17.7 before 2.18.0 and the ApostropheCMS apostrophe package before 4.33.0 are affected. Prefixed SVG animation tag names bypass the SMIL URL check, so a permitted link destination can be rewritten to a javascript: URI (CWE-79). Only configurations that permit namespace-prefixed SVG animation elements and URL-targeting attributes are affected. An attacker with low privileges can cause script to run when a user activates the affected link.

Written with Claude Haiku 5.5 from the sources below · 2026-11-06

Description from the CNA

ApostropheCMS is an open-source Node.js content management system, and sanitize-html provides a simple HTML sanitizer with a clear API. From sanitize-html 2.17.7 until 2.18.0, an application configuration that permits namespace-prefixed SVG animation elements and the relevant URL-targeting attributes can bypass the SMIL URL protection because prefixed tag names do not match the unprefixed animation-element check. The bypass can rewrite a link destination to an unsafe URI after the sanitized SVG is rendered, with script execution occurring when a user activates the affected link; the default sanitizer configuration is not unconditionally affected. This issue is fixed in sanitize-html 2.18.0.

Why it matters now

Exploitation Proof of concept CISA SSVC · not in CISA KEV
EPSS 0.00313 24th percentileScored 2026-11-07
Fix Partial apostrophe (apostrophecms): 4.33.0sanitize-html (apostrophecms): 2.18.0+1 more productRed Hat: 11 without a fix

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
Poc
Automatable
No
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
apostrophecmsapostrophebefore 4.33.04.33.0Patch availableCNA
apostrophecmssanitize-html2.17.7 to before 2.18.02.18.0Patch availableCNA
—sanitize-html (npm)2.17.7 to before 2.18.02.18.0Patch availableGHSA-374f-7chj-9948
  • apostrophe Vendorapostrophecms Affected before 4.33.0 Fixed in 4.33.0 Patch available CNA
  • sanitize-html Vendorapostrophecms Affected 2.17.7 to before 2.18.0 Fixed in 2.18.0 Patch available CNA
  • sanitize-html (npm) Vendor— Affected 2.17.7 to before 2.18.0 Fixed in 2.18.0 Patch available GHSA-374f-7chj-9948

CPE names Threatist (inferred) · 1

Inferred from how NVD named this product before; not given by a source.

CPEVersionsRoleVendor
cpe:2.3:a:apostrophecms:apostrophecms:*:*:*:*:*:*:*:*——apostrophecms
  • cpe:2.3:a:apostrophecms:apostrophecms:*:*:*:*:*:*:*:* Versions — — ·apostrophecms

Remediation

Upgrade sanitize-html to 2.18.0 and apostrophe to 4.33.0. Red Hat lists Cost Management On Premise, Multicluster Engine for Kubernetes, Red Hat Advanced Cluster Management for Kubernetes 2, Red Hat Enterprise Linux 10 and other products as affected with no plan available.

Written with Claude Haiku 5.5 from the sources below · 2026-11-06

  • Fix · CNA apostrophe (apostrophecms) Fixed in 4.33.0
  • Fix · CNA sanitize-html (apostrophecms) Fixed in 2.18.0
  • Fix · GHSA-374f-7chj-9948 sanitize-html (npm) Fixed in 2.18.0 Advisory →

Vendor assessments

Red Hat

Red Hat rating: Low. Red Hat's page for this CVE →

ProductStatusPlan or fix
Cost Management On PremiseAffectedNo fix yet: Fix deferred
Multicluster Engine for KubernetesAffectedNo fix yet: Fix deferred
Red Hat Advanced Cluster Management for Kubernetes 2AffectedNo fix yet: Fix deferred
Red Hat Enterprise Linux 10AffectedNo fix yet: Fix deferred
Red Hat Hardened ImagesAffectedNo fix yet: Fix deferred
Red Hat OpenShift AI (RHOAI)AffectedNo fix yet: Fix deferred
Red Hat OpenShift Container Platform 4AffectedNo fix yet: Fix deferred
Red Hat OpenShift Container Platform 5AffectedNo fix yet: Fix deferred
Red Hat OpenShift Dev SpacesAffectedNo fix yet: Fix deferred
Red Hat Quay 3AffectedNo fix yet: Fix deferred
Red Hat Satellite 6AffectedNo fix yet: Fix deferred
Not affected: 1 product
  • Red Hat Hardened Images

Timeline

  1. 2026-10-20 Threatist record created from CVE-2026-113657
  2. 2026-10-21 Alias added: GHSA-374f-7chj-9948
  3. 2026-10-21 Fix available: npm/[email protected] · GHSA-374f-7chj-9948
  4. 2026-10-21 CVSS score added · GHSA-374f-7chj-9948
  5. 2026-10-21 Weakness changed · GHSA-374f-7chj-9948
  6. 2026-10-21 5 new references · GHSA-374f-7chj-9948
  7. 2026-10-21 Affected versions changed · Red Hat
  8. 2026-10-21 CVSS score added · Red Hat
  9. 2026-10-23 Affected versions changed · Red Hat
  10. 2026-10-30 Affected versions changed · Red Hat

References

  • TI-2026-25223 ApostropheCMS has Arbitrary File Write (Zip Slip / Path Traversal) in Import-Export Gzip Extraction CVSS 3.1CRITICAL 10.0
  • TI-2026-32848 Apostrophe has default XSS via `xmp` raw-text passthrough in `sanitize-html` CVSS 3.1CRITICAL 9.3
  • TI-2026-38664 @apostrophecms/seo Vulnerable to Stored XSS via Unsanitized Google Analytics / GTM ID Injected into Script Tag CVSS 3.1HIGH 8.7
  • TI-2026-27673 ApostropheCMS: Stored XSS in SEO Fields Leads to Authenticated API Data Exposure in ApostropheCMS CVSS 3.1HIGH 8.7
  • TI-2026-76992 Unauthenticated resource exhaustion via ApostropheCMS import routes CVSS 3.1HIGH 7.5
  • TI-2026-76974 ApostropheCMS leaves rejected CSV uploads in temporary directory CVSS 3.1HIGH 7.5
See all 65 →

Sources