CVE-2026-105649: Ghost: Stored XSS via SVG Uploads Bypassing Sanitization
Impact
SVG media thumbnails, and SVG images uploaded with a non-SVG file extension, were stored without sanitization. This allowed any staff user, including Contributors, to host scripts on the site's domain, possibly resulting in compromise of other staff users' admin sessions.
Vulnerable versions
This vulnerability is present in Ghost from v4.22.0 up to v6.64.0.
Patches
v6.65.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.
References
Ghost thanks Ibrahim AlJaafreh of Cystack Red Team, Anand Prajapati, 白墨, and Nhat Anh Vu 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 4.22.0 until 6.65.0, SVG media thumbnails and SVG images uploaded with a non-SVG file extension were stored without sanitization. This allowed any staff user, including Contributors, to host scripts on the site's domain, possibly resulting in compromise of other staff users' admin sessions. This issue is fixed in version 6.65.0.
— NVD
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
npm/ghostto a version that resolves this vulnerability.Fixed in 6.65.0 - Upgrade
Upgrade
Ghostto a version that resolves this vulnerability.Fixed in 6.65.0
Event History
Frequently Asked Questions
Which deployments are affected?
Ghost versions from 4.22.0 through 6.65.0 are affected. The issue is fixed in version 6.65.0.
What level of access does an attacker need?
An attacker needs a staff account with the ability to upload media. This includes the Contributor role.
What is the likely impact of successful exploitation?
A staff user can upload a crafted SVG that hosts scripts on the site's domain. Those scripts could compromise the admin sessions of other staff users who interact with the malicious content.