Severity by source
AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H
Network and unauthenticated (AV:N/PR:N) but gated by shared-cache and same-domain prerequisites plus victim cache retrieval (AC:H, UI:R); cache poisoning crosses trust boundary (S:C) enabling account takeover (C:H/I:H), with limited availability impact (A:L).
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
Ghost is a Node.js content management system. From until 6.37.0, when Ghost is behind a shared caching layer that results in cached content being shared between different visitors, an unauthenticated user could send an x-ghost-preview header that altered the rendered frontend response. In affected cache configurations, that response could be stored and served to subsequent visitors requesting the same page, allowing cache poisoning of request-specific preview output. When running Ghost's frontend and admin panel on the same domain this could be used to take over staff user accounts. When running these on different domains staff accounts have no exposure. This vulnerability is fixed in 6.37.0.
Articles & Coverage 1
AnalysisAI
Web cache poisoning in the Ghost Node.js CMS before 6.37.0 lets an unauthenticated attacker inject an x-ghost-preview header that alters the rendered frontend response, which a shared caching layer then stores and serves to other visitors of the same page. When Ghost's public frontend and admin panel share a single domain, this request-specific preview output can be weaponized to hijack staff accounts; separate-domain deployments are not exposed. No public exploit is identified at time of analysis, and the issue carries a vendor CVSS of 9.6.
Technical ContextAI
Ghost is a widely used open-source headless/traditional CMS built on Node.js, commonly fronted by a CDN or reverse-proxy cache (Varnish, Cloudflare, Fastly, nginx microcaching) to absorb anonymous traffic. The vulnerability is rooted in CWE-524 (information exposure through caching): Ghost honors the request-specific x-ghost-preview header when rendering the frontend, but the resulting response is not properly distinguished (no Vary handling/cache-key separation) from a normal page. A shared cache therefore treats attacker-influenced, preview-altered output as a cacheable representation of the canonical URL and replays it to unrelated visitors. The CPE cpe:2.3:a:tryghost:ghost:*:*:*:*:*:*:*:* indicates all Ghost versions up to the 6.37.0 fix are affected.
RemediationAI
Upgrade to Ghost 6.37.0, which fixes the issue (Vendor-released patch: 6.37.0); this is the primary and recommended remediation per advisory GHSA-62q6-4hv4-vjrw (https://github.com/TryGhost/Ghost/security/advisories/GHSA-62q6-4hv4-vjrw). If you cannot patch immediately, apply compensating controls at the caching layer and topology: strip or block the x-ghost-preview header on inbound requests at the CDN/reverse proxy so it can never reach Ghost from untrusted clients (trade-off: legitimate preview workflows routed through that path break); add x-ghost-preview to the cache key or Vary handling, or exclude preview-influenced responses from the shared cache entirely (trade-off: reduced cache hit ratio); and where feasible serve the admin panel on a separate domain/subdomain from the public frontend, which removes the staff-account-takeover exposure even if cache poisoning of preview output remains possible.
A vulnerability in the NuPoint Unified Messaging (NPM) component of Mitel MiCollab through 9.8 SP1 FP2 (9.8.1.201) could
FortiOS and FortiProxy contain an authentication bypass via the Node.js websocket module allowing unauthenticated remote
Eval injection vulnerability in the internals.batch function in lib/batch.js in the bassmaster plugin before 1.5.2 for t
Flowise version 3.0.5 contains a remote code execution vulnerability in the CustomMCP node. The mcpServerConfig paramete
Node.js 8.5.0 before 8.6.0 allows remote attackers to access unintended files, because a change to ".." handling was inc
An issue was discovered in the node-serialize package 0.0.4 for Node.js. Rated critical severity (CVSS 9.8), this vulner
Directory traversal vulnerability in the st module before 0.2.5 for Node.js allows remote attackers to read arbitrary fi
Multiple SQL injection vulnerabilities in the Manage Accounts page in the AccountManagement.asmx service in the Solarwin
The JS-YAML module before 2.0.5 for Node.js parses input without properly considering the unsafe !!js/function tag, whic
Directory traversal vulnerability in lib/app/index.js in Geddy before 13.0.8 for Node.js allows remote attackers to read
Credential-harvesting malware compromised 84 versions of 42 TanStack npm packages on 2026-05-11 via chained GitHub Actio
Eval injection vulnerability in index.js in the syntax-error package before 1.1.1 for Node.js 0.10.x, as used in IBM Rat
Same technique Information Disclosure
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-39027
GHSA-62q6-4hv4-vjrw