Skip to main content

Ghost CMS CVE-2026-53945

| EUVDEUVD-2026-39024 MEDIUM
Time-of-check Time-of-use (TOCTOU) Race Condition (CWE-367)
2026-06-24 GitHub_M GHSA-ch52-px8q-f22j
4.0
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Control authoritative DNS for attacker-owned domain
  2. Delivery
    Configure DNS to resolve to public IP with sub-second TTL
  3. Exploit
    Trigger Ghost outbound HTTP feature with attacker domain URL
  4. Execution
    Ghost resolves domain, sees public IP, passes private-IP check
  5. Persist
    Attacker switches DNS record to internal target IP
  6. Impact
    Ghost HTTP client connects to internal host

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture TOCTOU prevention
Exploitation Conditions

The attacker must be able to trigger a Ghost feature that issues an outbound HTTP request to an attacker-controlled hostname - examples include configuring a webhook URL, submitting an RSS feed URL for import, or invoking a custom integration. The CVSS vector (PR:N) indicates this can be achieved without authenticating to Ghost, though the specific unauthenticated feature vector should be confirmed against the full vendor advisory. Beyond the Ghost interaction, the attacker must control a DNS server capable of serving responses with very short TTLs and switch the A record from a public IP to a private/internal target within the window between Ghost's IP-validation check and the subsequent TCP connection. Exploitation is constrained by this high timing precision (AC:H) and the requirement for DNS infrastructure control. Ghost versions 6.21.1 and later are not affected.

Impact

The official CVSS 3.1 score is 4.0 with vector AV:N/AC:H/PR:N/UI:N/S:C/C:N/I:L/A:N. The High attack complexity (AC:H) accurately captures the non-trivial prerequisites: the attacker must control DNS infrastructure with sub-TTL switching capabilities and win a race condition between Ghost's check and its TCP handshake. The Scope Changed (S:C) flag is substantively important - exploitation allows Ghost to reach internal hosts such as cloud metadata endpoints (169.254.169.254), internal APIs, or adjacent containers that should be network-isolated. The official vector rates C:N, but SSRF-class access to internal hosts typically allows at least probing responses, suggesting C:L may better reflect realistic impact; this discrepancy should be verified against the vendor's analysis of which Ghost features expose fetch responses to the requester. No CISA KEV listing and no public exploit code identified at time of analysis; no EPSS data was provided, so exploitation probability cannot be quantified. Practical risk is elevated for Ghost deployments co-located with sensitive internal services but substantially reduced by AC:H for opportunistic attackers.

Exploit ScenarioDerived

An attacker registers a domain and configures its authoritative DNS to serve a public IP with an extremely short TTL. They trigger a Ghost feature (such as a webhook endpoint or integration fetch) pointing at that domain; Ghost resolves the name, sees a public IP, and passes its private-IP check. The attacker simultaneously flips the DNS record to an internal target (e.g., 169.254.169.254 or an internal database host); Ghost's HTTP client then connects to the internal address, bypassing SSRF protections. No public exploit code has been identified at time of analysis, and the timing-dependent nature of the attack limits casual exploitation.

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

DNS rebinding bypasses Ghost CMS's private-IP validation for outbound HTTP requests, enabling server-side request forgery (SSRF) against internal network resources. Versions 6.0.9 through 6.21.0 are affected; the root cause is a TOCTOU race (CWE-367) between Ghost's allowlist check and the actual TCP connection, which a DNS-rebinding attacker exploits by switching DNS records between check-time and connect-time. No public exploit code identified and not listed in CISA KEV, but the scope-changed CVSS rating (S:C) reflects that successful exploitation escapes Ghost's network boundary into adjacent internal infrastructure.

RemediationAI

Upgrade to Ghost 6.21.1 or later, which contains the vendor-released fix per advisory GHSA-ch52-px8q-f22j at https://github.com/TryGhost/Ghost/security/advisories/GHSA-ch52-px8q-f22j. If immediate upgrade is not feasible, apply egress firewall rules at the network or container level that block Ghost's process from initiating TCP connections to RFC-1918 ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16), link-local ranges (169.254.0.0/16), and other internal CIDRs; this network-layer control prevents the rebinded connection from succeeding even when the application-level check is bypassed, though misconfiguration may disrupt legitimate outbound Ghost features. As a more aggressive workaround, disabling Ghost features that perform external HTTP fetches - webhooks, custom integrations, RSS imports - eliminates the attack surface at the cost of losing that functionality entirely.

Affected VersionsENISA

Ghost 6.0.9, < 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 system (CPE: cpe:2.3:a:tryghost:ghost) that exposes features - webhooks, RSS imports, link unfurling, custom integrations - which issue outbound HTTP fetches. To prevent SSRF, Ghost validates that the resolved IP of a requested hostname is not within RFC-1918 private ranges before connecting. The flaw (CWE-367: Time-of-Check Time-of-Use) arises because DNS resolution at check-time is distinct from the resolution the HTTP client uses at connect-time. An attacker who controls a DNS server can serve a public IP during Ghost's check phase, then switch the DNS record to a private/internal IP - with a very short TTL - before Ghost's HTTP client establishes the TCP connection. This classic DNS rebinding pattern defeats point-in-time IP validation without requiring any change to Ghost's own configuration.

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

DNS rebinding requires no auth but demands DNS control and timing precision (AC:H); SSRF-class internal access implies at least low confidentiality impact (C:L) from probing internal service responses.

3.1 AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:L/A:N
4.0 AV:N/AC:H/AT:P/PR:N/UI:N/VC:L/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
High
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, Ghost’s private-IP check for outbound HTTP requests could be bypassed via DNS rebinding, allowing an attacker to coerce the Ghost server into reaching hosts on internal networks through features that issue external fetches. This vulnerability is fixed in 6.21.1.

Threat Intelligence Overview

EPSS Score
0.1%
Top 96% exploitable
Prevalence
Medium
popular open-source CMS used widely by independent publishers and media
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

40
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +20
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