# CVE-2026-45011: ApostropheCMS stored XSS in image widget link

Source: https://junglewise.ai/threats/cve-2026-45011-apostrophecms-stored-xss-in-image-widget-link  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-06-12. Updated: 2026-09-25  
License: CC BY 4.0 with a link back

CVE-2026-45011 · Severity: high · CVSS 7.3 · Published 2026-06-12

ApostropheCMS is a Node.js-based content management system that allows editors to create and publish web pages with rich media. An editor can inject malicious JavaScript code into an image widget's link field, which executes in the browser of any user (including administrators or public visitors) who clicks the linked image on a published page. This allows attackers to steal sensitive information, modify page content, perform phishing attacks, or compromise site visitors.

Technologies: [ApostropheCMS](https://junglewise.ai/threats/technologies/apostrophecms), [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-45011 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-45011 being exploited in the wild.

**How severe is CVE-2026-45011?** High severity, with a CVSS score of 7.3, published 12 June 2026.

**Which products and versions are affected?** ApostropheCMS 4.29.0; apostrophe (npm) = 4.29.0.

**Is there a fix for CVE-2026-45011?** No fixed version is recorded yet. Check the vendor's advisory in the references below. If you run it, Junglewise drafts a mitigation that fits your setup and applies it once you approve, with senior security engineers behind it.

**How is CVE-2026-45011 attacked?** It is attacked over the network, in a web application.

**Am I affected by CVE-2026-45011?** Check whether you run ApostropheCMS 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.

## Technical details

A stored cross-site scripting (XSS) vulnerability exists in ApostropheCMS's image widget functionality, stemming from improper validation and sanitization of user-supplied URLs in the link field (CWE-79, CWE-116). An authenticated Editor role user can enter a javascript: URL scheme in the image widget's "Link to" field, which is stored in the database without sanitization. Upon publication, any user (including unauthenticated visitors) who clicks the linked image triggers execution of the malicious JavaScript payload in their browser context. The vulnerability requires authentication (Editor role) and user interaction (victim clicking the link), but impacts confidentiality (reading CMS interface data) and integrity (modifying content). The fix requires server-side validation to reject dangerous URL schemes (javascript:, data:, etc.) while allowing safe protocols (http:, https:, mailto:, relative URLs).

## Affected products

- ApostropheCMS ApostropheCMS 4.29.0 (and likely other 4.x versions)

## Identifiers

- CVE-2026-45011
- GHSA-5f64-7vfc-rcx6

## Timeline

- 2026-05-14: disclosed: Advisory GHSA-5f64-7vfc-rcx6 published
- 2026-05-13: other: Vulnerability announced by boutell

## References

- [https://github.com/apostrophecms/apostrophe/security/advisories/GHSA-5f64-7vfc-rcx6](https://github.com/apostrophecms/apostrophe/security/advisories/GHSA-5f64-7vfc-rcx6)
- [https://github.com/apostrophecms/apostrophe](https://github.com/apostrophecms/apostrophe)
- [https://github.com/apostrophecms/apostrophe/releases/tag/apostrophe%404.29.0](https://github.com/apostrophecms/apostrophe/releases/tag/apostrophe%404.29.0)

## 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)
