Where
-Infinity
0
Severity
5
XSS
AV:N/AC:H/PR:H/UI:N/S:U/C:N/I:H/A:L

Impact

The Universal Import feature in Ghost Admin failed to properly sanitize imported content resulting in XSS in post content.

Vulnerable versions

This vulnerability is present in Ghost from v5.26.0 up to v6.54.0.

Patches

v6.54.1 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.

Workarounds

If upgrading immediately is not possible, avoid using the Universal Import feature.

References

Ghost thanks meifukun for disclosing this vulnerability responsibly.

For more information

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

1 / 2
Source: GitHub
First published (updated )
Severity
9.6
AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H

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.

1 / 2
Source: GitHub
First published (updated )
Severity
5.4
SSRF
AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N

Impact

When re-rendering posts, Ghost would refetch missing image dimensions by issuing an outbound HTTP request to the URL stored on an image card — without restricting that URL to trusted image hosts. An authenticated staff user able to create or edit posts could therefore point an image card at an attacker-chosen host and cause the Ghost server to request it on their behalf, including hosts on internal networks or cloud instance metadata endpoints that would not normally be reachable from the public internet.

Vulnerable versions

This vulnerability is present in Ghost from v6.19.3 up to v6.21.0.

Patches

v6.21.1 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.

For more information

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

1 / 2
Source: GitHub
First published (updated )
Severity
5.3
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N

Impact

A discrepancy in responses from the members signin endpoints made it possible for an unauthenticated attacker to determine whether a given email address belongs to a registered member of a Ghost site.

Vulnerable versions

This vulnerability is present in Ghost from v5.18.0 up to v6.21.0.

Patches

v6.21.1 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.

For more information

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

1 / 2
Source: GitHub
First published (updated )
Severity
5.4
Malicious File Upload
AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N

Impact

Insufficient validation of the client-supplied Content-Type on Ghost's Admin API file upload endpoint allowed uploaded files to be served from the site with an attacker-chosen content type on S3/GCS storage backends. On installations that serve uploaded files from the same origin as the site, this could have been used to facilitate stored cross-site scripting against site visitors or staff.

Vulnerable versions

This vulnerability is present in Ghost from v6.19.4 up to v6.21.0.

Patches

v6.21.1 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.

For more information

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

1 / 2
Source: GitHub
First published (updated )
Severity
5.3
Infoleak, SQL Injection
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N

Impact

The validation applied to filters on the public API endpoints could be partially bypassed, making it possible to reveal private fields via a brute force attack. If SQLite was used as the database password hashes were fully accessible. If MySQL was used as the database the password hashes' case (uppercase / lowercase) would have been lost, which would likely have rendered a further brute force attack on the discovered hashes fruitless.

Vulnerable versions

This vulnerability is present in Ghost from v5.46.1 up to v6.21.1.

Patches

v6.21.2 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.

Workarounds

If upgrading immediately is not possible, block or filter requests to Content API endpoints where the filter query parameter contains password or email (including any compound form such as users.password, users.email, authors.password, authors.email). Reject requests at a reverse proxy / WAF layer before they reach Ghost.

Example (case-insensitive) pattern to block on the raw querystring:

filter=[^&](password|email)

References

Ghost thanks crnkovic for disclosing this vulnerability responsibly.

For more information

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

1 / 2
Source: GitHub
First published (updated )

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