CVE-2026-53608 json
@apostrophecms/seo Vulnerable to Stored XSS via Unsanitized Google Analytics / GTM ID Injected into Script Tag
published 5mo ago modified 17d ago also EUVD-2026-36589 , GHSA-wf43-fpp3-cf65
- cvss
- 8.7
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.3%
- EPSS 0.3% chance of exploitation in 30 days, percentile 17%
- public exploits
- 0
- none known
Summary
ApostropheCMS is an open-source Node.js content management system. Versions up to and including 1.4.2 of the `@apostrophecms/seo` package injects the Google Analytics Tracking ID (`seoGoogleTrackingId`) and Google Tag Manager ID (`seoGoogleTagManager`) directly into `<script>` tag bodies using JavaScript template literals without any sanitization or validation. Any user with editor-level access (the default role for content managers) can set these fields to a malicious value, resulting in stored XSS that executes on every page for every visitor of the site. As of time of publication, no known patched versions are available.
Patch / fix
- npm @apostrophecms/seo 1.5.0
- github.com/apostrophecms/apostrophe@5a88e96 commit
- github.com/apostrophecms/apostrophe#5464 pull request
Is CVE-2026-53608 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerCISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- no
- Technical impact
- total
- Assessed
- 4mo ago
Exploit prediction
0.26% chance of exploitation in the next 30 days, higher than 17% of all scored CVEs (FIRST EPSS, 2026-11-11).
Exploits and checks
- github.com https://github.com/apostrophecms/apostrophe/security/advisories/GHSA-wf43-fpp3-cf65 referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 8.7 | CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N |
| GitHub | 3.1 | 8.7 | CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| npm | @apostrophecms/seo | <1.5.0 |
1.5.0 |
Affected products
- apostrophecms @apostrophecms/seo
Classification
- Weakness
-
- CWE-79 Improper Neutralization of Input During Web Page Generation
References
-
github.com
/apostrophecms/apostrophe/pull/5464
web
-
github.com
/apostrophecms/apostrophe/commit/5a88e9630cbbdde33154ef8abe7557ddf7be418b
web
-
github.com
/apostrophecms/apostrophe/security/advisories/GHSA-wf43-fpp3-cf65
exploit, web, advisory
-
nvd.nist.gov
/vuln/detail/CVE-2026-53608
advisory
-
github.com
/apostrophecms/apostrophe
package
Sources
- CVE List CVE-2026-53608
- GitHub Advisory GHSA-wf43-fpp3-cf65
- NVD CVE-2026-53608
- Maintainer advisory GHSA-wf43-fpp3-cf65
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
The maintainers of apostrophecms/apostrophe published their own advisory on GitHub. Reviewed sources take precedence over it.