Skip to main content

Ghost CMS CVE-2026-53946

| EUVDEUVD-2026-39023 MEDIUM
Server-Side Request Forgery (SSRF) (CWE-918)
2026-06-24 GitHub_M GHSA-g366-23fw-ggp6
5.4
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as Ghost staff user
  2. Delivery
    Create or edit post with image card pointing to internal or metadata URL
  3. Exploit
    Save post to trigger re-render pipeline
  4. Execution
    Ghost server issues unauthenticated HTTP request to target host
  5. Persist
    Capture response from internal service or cloud metadata endpoint
  6. Impact
    Extract sensitive data (e.g., cloud credentials)

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service URL allowlisting, SSRF prevention
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Credential Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires a valid Ghost staff user account with post creation or editing permissions - unauthenticated exploitation is not possible. The flaw is triggered during post re-rendering when an image card URL is present and Ghost lacks cached dimension data for that URL, causing Ghost to fetch the URL. The attacker must control the image card URL value within the post content. Exploitation is limited to Ghost versions 6.19.4 through 6.21.1. The UI:R CVSS metric indicates a re-rendering event must be triggered, meaning the attacker cannot autonomously force the server request without some post save or render action. Access to the Ghost admin interface or API is required; the vulnerability does not affect unauthenticated readers of published content.

Impact

The vendor-assigned CVSS 3.1 score of 5.4 (Medium) reflects low complexity, authenticated access (PR:L), a scope change (S:C - Ghost's rendering pipeline affects external systems on the server's behalf), and low individual C/I impact. The UI:R metric warrants scrutiny: it suggests some triggering action is needed to initiate re-rendering, which limits opportunistic mass exploitation but does not materially hinder a motivated insider or compromised staff account. Despite the medium score, real-world risk is asymmetric for cloud-hosted Ghost instances: if IMDSv2 is not enforced with a hop-limit of 1, an attacker reaching the AWS or GCP metadata endpoint via SSRF may obtain instance credentials, escalating impact well beyond what the base CVSS score implies. KEV status is absent - no confirmed active exploitation. EPSS data was not included in available intelligence and cannot be quantified. No POC is referenced. The risk profile is therefore: medium baseline, high potential for cloud-deployed instances without metadata service hardening.

Exploit ScenarioDerived

An authenticated Ghost staff member inserts an image card into a post with the URL set to an internal target - for example, http://169.254.169.254/latest/meta-data/iam/security-credentials/ on an AWS-hosted instance - then saves or triggers re-rendering of the post. Ghost's rendering pipeline, finding no cached image dimensions, issues an outbound GET request to that URL, and the HTTP response (potentially containing cloud IAM credentials) is processed server-side. No public POC exists at time of analysis, but the SSRF technique against cloud metadata endpoints is well-documented and requires no specialized tooling beyond the ability to set an image card URL.

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

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

Alert me

AnalysisAIv1 – Jun 24, 2026

Server-side request forgery in Ghost CMS versions 6.19.4 through 6.21.1 allows authenticated staff users to pivot the Ghost server into making arbitrary outbound HTTP requests, including to internal network hosts and cloud instance metadata endpoints. The vulnerable code path is Ghost's post re-rendering pipeline, which fetches image dimensions from URLs stored in image cards without validating those URLs against a trusted host allowlist. No public exploit has been identified at time of analysis, and a vendor-released patch is available in 6.21.1.

RemediationAI

The primary fix is upgrading Ghost to version 6.21.1 or later, which introduces trusted host restrictions on outbound HTTP requests issued during image dimension fetching. The vendor advisory is at https://github.com/TryGhost/Ghost/security/advisories/GHSA-g366-23fw-ggp6. If immediate patching is not possible, restrict which users hold staff-level post creation and editing permissions, reducing the pool of accounts that can inject malicious image card URLs. As a network-level compensating control, configure host-based or perimeter firewall rules to block egress from the Ghost process to RFC 1918 address ranges and to 169.254.169.254 (AWS/GCP/Azure metadata); note this may break legitimate integrations that require intranet access. For cloud-hosted instances, enforce IMDSv2 with a PUT hop-limit of 1 on the instance to prevent single-hop SSRF from reaching instance metadata - this is a meaningful compensating control but does not address SSRF to other internal hosts and is not a substitute for patching.

Affected VersionsENISA

Ghost 6.19.4, < 6.21.1

Affected Packages

npm ghost fix: 6.21.1, 6.21.2

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 is an open-source Node.js content management platform used widely for publishing and blogging. The affected mechanism is Ghost's image card processing: during post re-rendering, when cached image dimension data is absent, Ghost issues an outbound HTTP GET request to the URL embedded in the image card to retrieve those dimensions. CWE-918 (Server-Side Request Forgery) identifies the root cause as the absence of URL validation or an outbound request allowlist on this code path. The SSRF is functionally unrestricted - the Ghost server can be directed at RFC 1918 addresses, loopback interfaces, or cloud metadata services such as the AWS IMDSv1 endpoint (169.254.169.254), which are reachable from the host but not from the public internet. CPE cpe:2.3:a:tryghost:ghost:*:*:*:*:*:*:*:* confirms the affected product scope.

Know when Ghost 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 (GitHub_M) PRIMARY 5.4 MEDIUM
AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
vuln.today AI 5.4 MEDIUM

Staff authentication required (PR:L), re-render event needed to trigger fetch (UI:R), and Ghost's server crosses trust boundary to reach internal systems (S:C).

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
Required
Scope
Changed
Confidentiality
Low
Integrity
Low
Availability
None

Lifecycle Timeline

1
Patch available
Jun 24, 2026 - 20:03 EUVD

DescriptionCVE.org

Ghost is a Node.js content management system. From 6.19.4 until 6.21.1, 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. This vulnerability is fixed in 6.21.1.

Threat Intelligence Overview

EPSS Score
0.1%
Top 98% exploitable
Prevalence
Medium
popular open-source Node.js CMS, widely used for independent publishing
Threat Intel
1
1 sources
Exploit
POC
Public exploit code exists
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA GitHub

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 Yes
EPSS 0.1%
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

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

Attack Technique

Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.

More in Ghost

View all
CVE-2026-22594 HIGH POC
8.1 Jan 10

Ghost CMS versions 5.105.0-5.130.5 and 6.0.0-6.10.3 contain an authentication bypass in their two-factor authentication

CVE-2026-29053 HIGH POC
7.6 Mar 05

Arbitrary code execution in Ghost CMS versions 0.7.2 through 6.19.0 allows authenticated attackers with theme upload pri

CVE-2022-28397 CRITICAL POC
9.8 Apr 12

An arbitrary file upload vulnerability in the file upload module of Ghost CMS v4.42.0 allows attackers to execute arbitr

CVE-2022-27139 CRITICAL POC
9.8 Apr 12

An arbitrary file upload vulnerability in the file upload module of Ghost v4.39.0 allows attackers to execute arbitrary

CVE-2026-26980 CRITICAL POC
9.4 Feb 20

SQL injection in Ghost CMS versions 3.24.0 through 6.19.0 allows unauthenticated attackers to read arbitrary database da

CVE-2024-34451 CRITICAL POC
9.1 Jun 16

Ghost through 5.85.1 allows remote attackers to bypass an authentication rate-limit protection mechanism by using many X

CVE-2024-23724 CRITICAL POC
9.0 Feb 11

Ghost through 5.76.0 allows stored XSS, and resultant privilege escalation in which a contributor can take over any acco

CVE-2024-34448 HIGH POC
8.8 May 22

Ghost before 5.82.0 allows CSV Injection during a member CSV export. Rated high severity (CVSS 8.8), this vulnerability

CVE-2020-8134 HIGH POC
8.1 Mar 20

Server-side request forgery (SSRF) vulnerability in Ghost CMS < 3.10.0 allows an attacker to scan local or external netw

CVE-2023-32235 HIGH POC
7.5 May 05

Ghost before 5.42.1 allows remote attackers to read arbitrary files within the active theme's folder via /assets/built%2

CVE-2021-29484 MEDIUM POC
6.8 Apr 29

Ghost is a Node.js CMS. Rated medium severity (CVSS 6.8), this vulnerability is remotely exploitable, no authentication

CVE-2023-40028 MEDIUM POC
6.5 Aug 15

Ghost is an open source content management system. Rated medium severity (CVSS 6.5), this vulnerability is remotely expl

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