Description
ApostropheCMS is an open-source Node.js content management system. Prior to 2.17.6, sanitizeHtml() can pass disallowed executable markup through packages/sanitize-html/index.js when textarea or xmp is included in allowedTags because a literal solidus after the raw-text end-tag name is treated as text by htmlparser2 and the ontext handler emits that content without escaping, while a browser parses the following img onerror markup as active HTML. This issue is fixed in version 2.17.6.
Published: 2026-08-17
Score: 6.1 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

SanitizeHtml function within ApostropheCMS incorrectly handles a literal solidus following the end tag of textarea or xmp. Instead of treating the solidus as part of the markup, the parser emits it as plain text, allowing a crafted img element with an onerror attribute to be embedded. As a result, attackers can insert executable JavaScript into content that bypasses the input filter, leading to client‑side XSS when the page is rendered in a browser.

Affected Systems

The vulnerability affects ApostropheCMS installations using versions prior to 2.17.6. The affected component is the sanitize-html module invoked by the system’s content sanitization logic. All deployments of the open‑source Node.js CMS that rely on the default allowedTags configuration are potentially impacted.

Risk and Exploitability

The CVSS score of 6.1 indicates a medium severity issue, and the vulnerability is not listed in CISA’s KEV catalog. EPSS data is unavailable. Attackers who can submit or modify content that includes a literal </textarea/> tag are likely able to exploit the flaw, surfacing XSS in contexts where the CMS renders user input. The attack vector is inferred to be through the CMS administrative interface or API endpoints that accept rich‑text content. Given that browsers will execute the injected onerror handler, the impact is widespread for any user who views the compromised page.

Generated by OpenCVE AI on August 17, 2026 at 21:40 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade ApostropheCMS to version 2.17.6 or later.
  • If an upgrade is delayed, review and remove the textarea and xmp tags from the allowedTags list or sanitize any content that contains a literal solidus after an end tag.
  • Implement a Content Security Policy that restricts inline JavaScript and disallows the execution of onerror handlers in images.

Generated by OpenCVE AI on August 17, 2026 at 21:40 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-jxwj-j7wr-gfrw ApostropheCMS: Mutation-XSS / allowedTags bypass via literal `</textarea/>` solidus close
History

Fri, 21 Aug 2026 21:45:00 +0000

Type Values Removed Values Added
First Time appeared Apostrophecms
Apostrophecms apostrophecms
Vendors & Products Apostrophecms
Apostrophecms apostrophecms

Tue, 18 Aug 2026 19:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Mon, 17 Aug 2026 20:00:00 +0000

Type Values Removed Values Added
Description ApostropheCMS is an open-source Node.js content management system. Prior to 2.17.6, sanitizeHtml() can pass disallowed executable markup through packages/sanitize-html/index.js when textarea or xmp is included in allowedTags because a literal solidus after the raw-text end-tag name is treated as text by htmlparser2 and the ontext handler emits that content without escaping, while a browser parses the following img onerror markup as active HTML. This issue is fixed in version 2.17.6.
Title ApostropheCMS: Mutation-XSS / allowedTags bypass via literal `</textarea/>` solidus close
Weaknesses CWE-79
References
Metrics cvssV3_1

{'score': 6.1, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N'}


Subscriptions

Apostrophecms Apostrophecms
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-08-18T18:08:30.331Z

Reserved: 2026-07-17T14:47:08.032Z

Link: CVE-2026-63670

cve-icon Vulnrichment

Updated: 2026-08-18T18:08:19.427Z

cve-icon NVD

Status : Received

Published: 2026-08-17T20:16:45.000

Modified: 2026-08-18T18:19:12.397

Link: CVE-2026-63670

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-21T21:19:28Z

Weaknesses
  • CWE-79

    Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')