Read the docs

Uncontrolled recursion in sanitize-html discarded iframe handling

Priority MEDIUM 63CWE-674Published · Updated

Key facts

Attack vector
Network
Privileges required
None
User interaction
None
Attack complexity
Low
Impact type
Denial of service
Confidentiality · integrity · availability
None · None · Low
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-674.

Summary

ApostropheCMS apostrophe before 4.34.0 and the sanitize-html package from 2.18.0 before 2.18.1 are affected. When an iframe is not allowed and disallowedTagsMode is 'discard', which is the default, sanitize-html re-sanitizes its content through a recursive call with no bound (CWE-674). An unauthenticated remote attacker can exhaust the stack and make the application fail.

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. In sanitize-html 2.18.0, when an <iframe> is not allowed and disallowedTagsMode is 'discard' (the defaults), its raw-text content is re-sanitized by a recursive call to sanitizeHtml(text, options). The recursion has no bound and starts each nested call with a fresh state. This vulnerability is fixed in 2.18.1.

Why it matters now

Exploitation Proof of concept CISA SSVC · not in CISA KEV
EPSS 0.0048 41st percentileScored 2026-11-07
Fix Partial apostrophe (apostrophecms): 4.34.0sanitize-html (apostrophecms): 2.18.1+1 more productRed Hat: 11 without a fix

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
Poc
Automatable
Yes
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.34.04.34.0Patch availableCNA
apostrophecmssanitize-html2.18.0 to before 2.18.12.18.1Patch availableCNA
—sanitize-html (npm)2.18.0 to before 2.18.12.18.1Patch availableGHSA-c9rx-x947-fp3h
  • apostrophe Vendorapostrophecms Affected before 4.34.0 Fixed in 4.34.0 Patch available CNA
  • sanitize-html Vendorapostrophecms Affected 2.18.0 to before 2.18.1 Fixed in 2.18.1 Patch available CNA
  • sanitize-html (npm) Vendor— Affected 2.18.0 to before 2.18.1 Fixed in 2.18.1 Patch available GHSA-c9rx-x947-fp3h

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 apostrophe to 4.34.0 and sanitize-html to 2.18.1 on npm. Red Hat lists no available fix for Cost Management On Premise, Multicluster Engine for Kubernetes, Red Hat Enterprise Linux 10, Red Hat OpenShift Container Platform 4 and other listed Red Hat products, and no fix is planned for Red Hat Hardened Images.

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

  • Fix · CNA apostrophe (apostrophecms) Fixed in 4.34.0
  • Fix · CNA sanitize-html (apostrophecms) Fixed in 2.18.1
  • Fix · GHSA-c9rx-x947-fp3h sanitize-html (npm) Fixed in 2.18.1 Advisory →

Vendor assessments

Red Hat

Red Hat rating: Moderate. 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 planned: Will not fix
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-113650
  2. 2026-10-21 Affected versions changed · Red Hat
  3. 2026-10-21 CVSS score added · Red Hat
  4. 2026-10-21 Alias added: GHSA-c9rx-x947-fp3h
  5. 2026-10-21 Fix available: npm/[email protected] · GHSA-c9rx-x947-fp3h
  6. 2026-10-21 CVSS score added · GHSA-c9rx-x947-fp3h
  7. 2026-10-21 Weakness changed · GHSA-c9rx-x947-fp3h
  8. 2026-10-21 6 new references · GHSA-c9rx-x947-fp3h
  9. 2026-10-23 Affected versions changed · Red Hat
  10. 2026-10-28 CISA SSVC decision points changed
  11. 2026-10-28 Priority changed: LOW → MEDIUM
  12. 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