Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAttacker authenticates as Ghost staff user
-
DeliveryCraft post with XSS payload in feature image caption field
-
ExploitVictim staff or admin opens post revision history modal in Ghost Admin
-
ExecutionUnsanitized caption executes attacker's JavaScript in victim's browser
-
PersistSession token or admin credentials exfiltrated to attacker
-
ImpactAttacker assumes victim's Ghost Admin session with elevated privileges
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | The attacker must hold at least a staff-level authenticated account in the target Ghost installation (Author, Editor, or equivalent role with post-creation capability). The victim must be another authenticated Ghost Admin user (staff or administrator) who opens the post revision/history modal for the attacker's crafted post - this is the UI:R requirement. The XSS payload is specifically triggered in the feature image caption rendering path of the post history modal ( |
| Impact | The vendor-assigned CVSS 4.3 (Medium) with vector AV:N/AC:L/PR:H/UI:R/S:U/C:L/I:L/A:L is conservative and potentially misleading on two counts. First, PR:H implies the attacker needs high privilege, but the description specifies 'any staff user' - in Ghost's role hierarchy, staff roles (Author, Editor) sit below Administrator, so PR:L is more accurate. Second, a successful session hijack grants the attacker full control of the victim's Ghost Admin session including administrator access, which maps to C:H/I:H rather than C:L/I:L. No EPSS score was provided in the input data, and KEV status is not confirmed. No public exploit code has been identified. Real-world risk is bounded by the requirement that: (1) the attacker holds at least a staff-level Ghost account, and (2) a victim staff/admin user must actively open the post revision history modal. For organizations running Ghost with multiple staff users of varying privilege levels - especially in self-hosted or Docker-based deployments - this represents a meaningful lateral/vertical escalation vector despite the low base score. |
| Exploit ScenarioDerived | An attacker with a Ghost staff (Author or Editor) account crafts a post and sets the feature image caption to a JavaScript payload such as |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 05, 2026
Stored cross-site scripting in Ghost CMS feature image captions enables any authenticated staff user to inject unsanitized HTML into the post revision history modal, hijacking the Ghost Admin session of another staff or administrator user who views that revision. Affects Ghost npm package versions v4.9.0 through v6.54.0. No public exploit identified at time of analysis and not listed in CISA KEV, but the privilege escalation potential - a lower-privileged staff member compromising a full administrator session - makes this higher-impact than the CVSS 4.3 score implies for multi-tenant or shared Ghost Admin environments.
RemediationAI
Upgrade Ghost to v6.54.1 immediately. For Docker-based deployments, update the official Ghost Docker image (https://hub.docker.com/_/ghost) following the Docker update procedure documented at https://docs.ghost.org/install/docker#updating-ghost. For Ghost-CLI installations, follow the update guide at https://docs.ghost.org/update. The patch (PR #29635) applies DOMPurify sanitization to the feature_image_caption field at both the Ember Admin frontend revision modal and the server-side frontend proxy, so both rendering surfaces are remediated in v6.54.1. If immediate upgrade is not possible, a compensating control is to restrict the Ghost staff role to only fully trusted users, preventing untrusted staff from authoring posts - note this has significant operational trade-offs as it limits who can publish content. There is no configuration flag to disable feature image captions without code modification.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in npm
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Ghost CMS (pkg:npm/ghost) is an open-source Node.js publishing platform. The vulnerability originates in the Ember.js-based Ghost Admin frontend, specifically in the post history/revision modal component (apps/ember-admin/app/components/modal-post-history.js). The feature_image_caption field on posts was retrieved from the revision list and passed directly into a SafeString rendering context without HTML sanitization, allowing arbitrary HTML and JavaScript to execute in any staff user's browser that opened the revision modal. The same unsanitized caption was also rendered through the frontend proxy service (ghost/core/core/frontend/services/proxy.js). The fix (PR #29635, commit a8bea3a) introduces DOMPurify with a strict allowlist (a, b, i, span tags; href, style attributes only; data and ARIA attributes explicitly blocked) at both rendering sites. Additionally, the importer's json-to-html.js received URL validation hardening to block non-http/https protocols. CWE-79 (Improper Neutralization of Input During Web Page Generation) is the confirmed root cause class.
Know when Docker gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:H/UI:R/S:U/C:L/I:L/A:L
PR:L because any staff role (not admin) can exploit; C:H/I:H because session hijack grants full admin account control; A:N as XSS has no availability impact.
Primary rating from Vendor (https://github.com/TryGhost/Ghost).
CVSS VectorVendor: https://github.com/TryGhost/Ghost
DescriptionCVE.org
Impact
An input validation issue allowed any staff user to create a post with content that could be used to hijack another staff user's Ghost Admin session resulting in privilege escalation.
Vulnerable versions
This vulnerability is present in Ghost from v4.9.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.
References
Ghost thanks Versa for disclosing this vulnerability responsibly.
For more information
If you have any questions or comments about this advisory, email Ghost at [security@ghost.org](mailto:security@ghost.org).
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.
An issue was discovered in Appsmith before 1.52. Rated critical severity (CVSS 9.8), this vulnerability is remotely expl
runc through version 1.0-rc6 (used in Docker before 18.09.2) contains a container escape vulnerability that allows attac
Netmaker makes networks with WireGuard. Rated high severity (CVSS 7.5), this vulnerability is remotely exploitable, no a
Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/
The News & Blog Designer Pack - WordPress Blog Plugin - (Blog Post Grid, Blog Post Slider, Blog Post Carousel, Blog Post
Path traversal in JFrog Artifactory (CWE-22) enables an authenticated low-privilege user to write data outside the inten
Docker 1.3.2 allows remote attackers to execute arbitrary code with root privileges via a crafted (1) image or (2) build
Remote code execution in Gogs through 0.14.2 allows authenticated users (and unauthenticated attackers on default-config
Unauthenticated remote command injection in SGWBOX N3 firmware 2.0.25 lets attackers execute arbitrary operating-system
Remote code execution in Flowise before 3.1.2 allows any authenticated user (or API caller with chatflow view/update per
Remote code execution in NocoBase Workflow Script Node (npm @nocobase/plugin-workflow-javascript) allows authenticated l
Docker Desktop Community Edition before 2.1.0.1 allows local users to gain privileges by placing a Trojan horse docker-c
EUVD-2026-53391
GHSA-pr22-p9rp-2cqv
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB