CVE-2026-53943: Ghost: Cache-poisoning XSS in Ghost frontend via x-ghost-preview header

Published Jun 24, 2026
·
Updated

Impact

When Ghost is behind a shared caching layer that results in cached content being shared between different visitors (e.g., Fastly, Cloudflare, nginx proxycache, and others), 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.

Vulnerable versions

This vulnerability is present in Ghost from v4.0 up to v6.36.0.

Patches

v6.37.0 contains a fix for this issue.

How to update

For self-hosters using Docker, find Docker's official Ghost image here. Updating a Docker-based Ghost instance is documented here.

If your Ghost is a Ghost-CLI install see our documentation on updating it to the latest version here.

If you suspect a credential compromise, use the “Reset all authentication” dialogue under Settings / Danger Zone. This is available starting with Ghost v6.41.0.

Workarounds

At the caching layer, bypass the cache for x-ghost-preview requests.

References

Ghost thanks CryptoCat for disclosing this vulnerability responsibly.

For more information

If you have any questions or comments about this advisory, email us at security@ghost.org.

Other sources

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.

NVD

Affected Software

2 affected componentsFixes available
Ghost Ghost<6.37.0
npm/ghost>=4.0.0<=6.36.0
6.37.0

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade npm/ghost to a version that resolves this vulnerability.

    Fixed in 6.37.0
  2. Upgrade

    Upgrade Ghost to a version that resolves this vulnerability.

    Fixed in 6.37.0
  3. Compensating control

    At the caching layer, bypass the cache for `x-ghost-preview` requests so cached content cannot be poisoned by preview-rendered responses.

Event History

Jun 24, 2026
CVE Published
via MITRE·06:13 PM
Data Sourced
via MITRE·06:13 PM
DescriptionSeverityWeakness
Data Sourced
via NVD·07:17 PM
DescriptionSeverityWeakness
Jul 1, 2026
Advisory Published
via GitHub·09:58 PM
Data Sourced
via GitHub·09:58 PM
DescriptionSeverityWeaknessAffected Software
Free Weekly Intel

Don't miss critical vulnerabilities

Join thousands of security professionals who receive our weekly digest of trending CVEs, zero-days, and exploited vulnerabilities.

No spam. Unsubscribe anytime.

Frequently Asked Questions

1

What is the severity of CVE-2026-53943?

CVE-2026-53943 has a critical severity rating of 9.6.

2

How do I fix CVE-2026-53943?

To mitigate CVE-2026-53943, upgrade Ghost to version 6.37.0 or later.

3

What type of vulnerability is CVE-2026-53943?

CVE-2026-53943 is a cache-poisoning cross-site scripting (XSS) vulnerability.

4

Who is affected by CVE-2026-53943?

Any Ghost installations prior to version 6.37.0 that use a shared caching layer are affected by CVE-2026-53943.

5

How can an attacker exploit CVE-2026-53943?

An attacker can exploit CVE-2026-53943 by sending a crafted x-ghost-preview header to alter the frontend response for different users.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203