# CVE-2026-112958: ApostropheCMS XSS via unencoded widget style attribute

Source: https://junglewise.ai/threats/cve-2026-112958-apostrophecms-is-an-open-source-node-js-content-management  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-10-20. Updated: 2026-10-20  
License: CC BY 4.0 with a link back

CVE-2026-112958 · Severity: medium · CVSS 5.4 · Published 2026-10-20

ApostropheCMS is an open-source Node.js content management system used to publish web content. A free-form widget style field fails to properly encode special characters in HTML attributes, allowing an editor to inject executable code into the style attribute. When published content or a draft is viewed, this injected code can run in a higher-privileged user's browser, potentially compromising accounts or stealing sensitive data.

Technologies: [ApostropheCMS Apostrophe](https://junglewise.ai/threats/technologies/apostrophecms-apostrophe), [apostrophe (npm)](https://junglewise.ai/threats/technologies/apostrophe). Vendors: [ApostropheCMS](https://junglewise.ai/threats/vendors/apostrophecms), [npm](https://junglewise.ai/threats/vendors/npm).

## Quick answers

**Is CVE-2026-112958 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-112958 being exploited in the wild.

**How severe is CVE-2026-112958?** Medium severity, with a CVSS score of 5.4, published 20 October 2026.

**Which products and versions are affected?** ApostropheCMS Apostrophe prior to 4.34.0; apostrophe (npm) < 4.34.0, SEMVER:introduced=0,fixed=4.34.0.

**Is there a fix for CVE-2026-112958?** Yes. apostrophe (npm): upgrade to 4.34.0 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2026-112958 attacked?** It is attacked over the network, in a software library.

**Am I affected by CVE-2026-112958?** Check whether you run ApostropheCMS Apostrophe or apostrophe (npm) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## How to fix

- apostrophe (npm): upgrade to 4.34.0 or later

  ```sh
  npm install apostrophe@4.34.0
  ```


## Technical details

A cross-site scripting (XSS) vulnerability exists in the widget style field wrapper serializer, which does not apply HTML-attribute encoding to editor-controlled input. An authenticated editor can inject quote characters to break out of the style attribute and inject arbitrary executable attributes. The vulnerability affects published content and drafts viewed by higher-privileged users. The issue is fixed in version 4.34.0 by properly escaping widget style wrapper attributes.

## Affected products

- ApostropheCMS Apostrophe prior to 4.34.0

## Identifiers

- CVE-2026-112958
- GHSA-7jg5-frgc-c67w

## Timeline

- 2026-10-20: disclosed
- 2026-10-14: patched

## References

- [https://github.com/apostrophecms/apostrophe/commit/06e4b377f3c360f9e89c32dccd7e505ad5ddf498](https://github.com/apostrophecms/apostrophe/commit/06e4b377f3c360f9e89c32dccd7e505ad5ddf498)
- [https://github.com/apostrophecms/apostrophe/commit/40b989b1a9dd23d30029b8ce7668634265cfe5ea](https://github.com/apostrophecms/apostrophe/commit/40b989b1a9dd23d30029b8ce7668634265cfe5ea)

## Related threats

- [ApostropheCMS unauthenticated file upload in import routes](https://junglewise.ai/threats/cve-2026-113711-apostrophecms-is-an-open-source-node-js-content-management)
- [ApostropheCMS password-change endpoint lacks attempt throttling](https://junglewise.ai/threats/cve-2026-113710-apostrophecms-no-attempt-throttling-on-authenticated-password)
- [ApostropheCMS page REST API authorization bypass](https://junglewise.ai/threats/cve-2026-113670-apostrophecms-page-rest-api-authorization-bypass)
- [ApostropheCMS cross-domain session token in URL confers session takeover](https://junglewise.ai/threats/cve-2026-113669-apostrophecms-cross-domain-session-token-in-url-confers-session)
- [ApostropheCMS REST route authorization bypass in locales endpoint](https://junglewise.ai/threats/cve-2026-113668-apostrophecms-id-locales-rest-route-omits-the-public-api)
