Skip to main content

Ghost CMS CVE-2026-53944

| EUVDEUVD-2026-39025 MEDIUM
Incomplete List of Disallowed Inputs (CWE-184)
2026-06-24 GitHub_M GHSA-wvp2-4qqp-4h3r
5.8
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Identify Ghost endpoint accepting attacker-controlled URLs
  2. Delivery
    Craft URL with IPv6-mapped private IPv4 literal (::ffff:x.x.x.x)
  3. Exploit
    Submit URL to Ghost server-side fetch feature
  4. Execution
    Ghost IP filter passes IPv6 literal without blocklist match
  5. Persist
    Node.js runtime resolves and connects to private IPv4 host
  6. Impact
    Receive internal service response (credentials, config data)

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V2 - Validation and Business Logic Input validation completeness
Exploitation Conditions

Exploitation requires that the attacker can supply a URL to a Ghost feature that performs server-side outbound HTTP requests (such as bookmark/embed URL previews, newsletter fetches, or webhook configurations). Ghost versions 6.0.9 through 6.21.0 must be running. No authentication is required per the CVSS PR:N rating. The attacker must know or discover a Ghost endpoint that accepts attacker-controlled URLs for server-side fetching. The IPv6 literal must use the ::ffff:<private-IPv4> mapped format to bypass the blocklist. Exploitation is bounded by what internal services are network-reachable from the Ghost host - deployments with strict outbound firewall rules blocking RFC 1918 destinations are partially protected even without the patch. Non-cloud deployments with no sensitive internal services face reduced real-world impact despite the bypass being equally achievable.

Impact

The CVSS 3.1 base score of 5.8 (Medium) encodes AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:L/A:N. The scope change (S:C) is the most operationally significant metric: successful exploitation crosses the trust boundary from the Ghost application into adjacent internal services. The vendor-assigned C:N is conservative - SSRF to internal metadata endpoints (e.g., cloud IMDSv1 at 169.254.169.254) or internal APIs commonly yields credential or configuration disclosure, suggesting real-world confidentiality impact may exceed the scored value. EPSS data was not provided, preventing probabilistic quantification of exploitation likelihood. The vulnerability is not listed in CISA KEV, and no public exploit code has been identified. Despite the medium CVSS score, deployments on cloud infrastructure with accessible metadata services face elevated risk because the bypass technique (IPv6-mapped literals) is trivially constructed and the attack requires no authentication per PR:N. Deployments behind strict egress firewalls are meaningfully protected.

Exploit ScenarioDerived

An unauthenticated attacker identifies a Ghost feature that triggers server-side outbound HTTP requests - such as a URL preview, bookmark card, or webhook - and submits a URL using an IPv6-mapped private IPv4 literal (e.g., http://[::ffff:169.254.169.254]/latest/meta-data/iam/security-credentials/). Ghost's IP filter passes the address as non-private, the Node.js runtime connects to the cloud metadata service, and the attacker receives IAM credential material in the response. No public exploit code has been confirmed at time of analysis, but the technique is well-understood, requires no tooling beyond a standard HTTP client, and is trivially constructed.

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 – Jun 24, 2026

Server-side request forgery (SSRF) filter bypass in Ghost CMS 6.0.9 through 6.21.0 allows remote unauthenticated attackers to direct the application to reach internal network services by supplying IPv6 literals that map to private IPv4 addresses, circumventing Ghost's outbound IP blocklist. The root cause is CWE-184 (Incomplete List of Disallowed Inputs): the filter validates against RFC 1918 private ranges but does not normalize IPv6-mapped IPv4 notation before comparison. No public exploit code has been identified at time of analysis, and no CISA KEV listing exists; Ghost 6.21.1 resolves the issue.

RemediationAI

Upgrade Ghost to version 6.21.1 or later; this is the vendor-confirmed patched release per advisory GHSA-wvp2-4qqp-4h3r (https://github.com/TryGhost/Ghost/security/advisories/GHSA-wvp2-4qqp-4h3r). If immediate upgrade is not feasible, apply network-layer egress filtering on the Ghost application server to block outbound TCP connections to all RFC 1918 ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) and the cloud metadata address 169.254.169.254, regardless of how the destination is specified at the application layer; this compensates for the application-filter bypass without requiring code changes. Note that network-level egress restrictions may break legitimate Ghost integrations if any configured webhooks or external content sources resolve to private addresses - audit outbound integrations before applying.

Affected VersionsENISA

Ghost 6.0.9, < 6.21.1

Affected Packages

npm ghost fix: 6.21.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's outbound HTTP request subsystem implements an application-layer IP blocklist to prevent SSRF by rejecting connections to RFC 1918 private IPv4 ranges (10.x, 172.16-31.x, 192.168.x). The bypass exploits CWE-184 - an incomplete disallowed-input list - because the filter does not normalize IPv6-mapped IPv4 addresses before evaluation. The IPv6 dual-stack representation embeds IPv4 addresses as ::ffff:a.b.c.d (e.g., ::ffff:192.168.1.1 or ::ffff:169.254.169.254); when Node.js resolves such a literal, the underlying TCP socket connects to the corresponding private IPv4 host without triggering the blocklist. The affected CPE is cpe:2.3:a:tryghost:ghost:*:*:*:*:*:*:*:*, spanning versions 6.0.9 through 6.21.0. This is a well-understood class of SSRF bypass documented against dual-stack environments and IPv6-aware runtimes.

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.8 MEDIUM
AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:L/A:N
vuln.today AI 7.2 HIGH

SSRF to internal services creates realistic confidentiality exposure (C:L rather than vendor C:N); all other metrics retain the network-accessible, zero-auth, scope-changed baseline.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Changed
Confidentiality
None
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.0.9 until 6.21.1, when making an external request, it is possible to bypass the IP filter that ensures the request isn't going to an internal service using an IPv6 literal which maps to a private IPv4 address. This vulnerability is fixed in 6.21.1.

Threat Intelligence Overview

EPSS Score
0.2%
Top 90% exploitable
Prevalence
Medium
popular Node.js CMS used by publishers, blogs, and media sites
Threat Intel
1
1 source
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.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
Yes
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

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-2026-53950 HIGH POC
7.5 Jun 24

Cross-site scripting (JavaScript injection) in Ghost's ActivityPub client (@tryghost/activitypub) prior to version 3.1.0

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

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