Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessTrigger Webmention from unauthenticated page
-
DeliverySupply internal IP in bypass encoding
-
ExploitDefeat private-range validation filter
-
ExecutionGhost issues blind HTTP request to internal host
-
ImpactProbe or invoke internal service without reading response
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V2 - Validation and Business Logic Input validation completeness
|
| Exploitation Conditions | Requires that Ghost's outbound-request functionality (notably Webmentions) be enabled and reachable such that an unauthenticated actor can cause the server to fetch an attacker-chosen URL, AND that the attacker can express an internal/private destination in a form that slipped past the pre-6.65.0 IP validation - specifically alternate IPv4 encodings (decimal/octal/hex/integer), IPv4-mapped or IPv4-compatible IPv6 addresses, or 6to4/NAT64 (RFC 6052) transition addresses. Exploitation is further gated on 'some network configurations' (per vendor) - the Ghost server must actually have reachable internal hosts (e.g. DNS64/NAT64 deployments or a flat internal network). Key LIMITING factors: the attack is blind (no response data is ever returned to the attacker, per the description), attack complexity is High, and value is confined to request-only side effects and liveness inference rather than data theft. |
| Impact | This is a genuine but modest-severity server-side request forgery (SSRF) weakness, not a top-tier priority. The provided CVSS:3.1 vector (AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:N/A:N = 4.0 MEDIUM) is internally consistent with the description: network-reachable and unauthenticated (PR:N), but high complexity (AC:H) because success depends on specific network configurations, and the scope change (S:C) reflects reaching a different security authority (the server's internal network) with only limited confidentiality impact (C:L) and no integrity or availability impact. Critically, the description states a successful attack returns NO response data, making this a 'blind' SSRF - the attacker can cause requests but cannot read responses, which sharply limits data-exfiltration value and aligns with the low CVSS. No EPSS score, no CISA KEV listing, and no public POC were provided in the input, so there is no public exploit identified at time of analysis and no evidence of active exploitation. The source-code evidence (the request-external.js IP-validation rewrite using ipaddr.js to handle IPv4-mapped, NAT64/RFC6052, 6to4, and alternate-encoding bypasses) confirms the root cause is incomplete deny-listing of private/reserved IP ranges (consistent with CWE-184). Net assessment: a real defense-in-depth fix worth patching on normal cadence, but the blind nature, high attack complexity, and absence of exploitation signals make it a low-to-medium operational priority rather than an emergency. |
| Exploit ScenarioDerived | An unauthenticated attacker publishes a page containing a Webmention (or similar outbound-request trigger) pointing a target URL at an internal address expressed in a form that bypassed Ghost's private-IP filter - for example an alternate IPv4 encoding, an IPv4-mapped IPv6 address, or a NAT64/DNS64-synthesized address on a network so configured. Ghost's server then issues an HTTP request to that internal host, letting the attacker probe or interact with services behind the firewall. No public exploit code was identified, and because no response data is returned the attacker gains only blind request capability (e.g. port/host liveness inference or triggering side-effecting internal endpoints). |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 05, 2026
Server-side request forgery (SSRF) in Ghost CMS versions 6.0.9 through 6.64.x lets an unauthenticated remote attacker induce the server to issue limited HTTP requests to hosts on its internal network. The flaw is blind - no response body is ever returned to the attacker - so the practical value is confined to request-triggered side effects and liveness/timing inference rather than data exfiltration, and exploitation depends on the target deployment actually having reachable internal hosts (e.g. NAT64/DNS64 setups or flat internal networks). The vendor fixed the issue in Ghost 6.65.0; no public exploit code has been identified at time of analysis and the flaw is not listed in CISA KEV, consistent with the assessed CVSS 3.1 score of 4.0 (AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:N/A:N).
RemediationAI
Vendor-released patch: upgrade to Ghost 6.65.0 (https://github.com/TryGhost/Ghost/releases/tag/v6.65.0), which incorporates the hardened ipaddr.js-based, default-deny address classification from PR https://github.com/TryGhost/Ghost/pull/30917 and commit https://github.com/TryGhost/Ghost/commit/20d3f792bf4a7c349ee56b746a067550d8684ff5; see advisory GHSA-r7f2-6fj8-6fg2. If an immediate upgrade is not possible, the most effective compensating control is to disable or restrict the features that fetch attacker-supplied URLs - notably Webmentions - since the vulnerability is only reachable through Ghost's outbound-request functionality; the trade-off is loss of that integration while it is disabled. In parallel, enforce egress filtering on the Ghost host or container so outbound TCP from the Node.js process can only reach required public endpoints and is denied to RFC 1918, loopback, link-local, CGNAT, unique-local IPv6 (fc00::/7), and IPv6 transition ranges (2002::/16, 64:ff9b::/96), which neutralizes the blind SSRF at the network layer at the cost of requiring a maintained allowlist that must be updated as legitimate integrations change. Running Ghost in a network segment without reachable internal services or metadata endpoints (e.g. 169.254.169.254) further reduces exposure with the trade-off of additional segmentation complexity. Note that no vendor patch status other than 6.65.0 applies: this CVE is not in CISA KEV and no public exploit code has been identified, so these measures are precautionary rather than incident-driven.
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 is a Node.js content management system whose outbound fetch helper (ghost/core/core/server/lib/request-external.js) is responsible for validating that attacker-influenced URLs - most notably Webmention targets - do not resolve to private, loopback, link-local, or otherwise reserved address space. The root cause is CWE-184 (Incomplete List of Disallowed Inputs): the pre-6.65.0 implementation used hand-rolled regular expressions and a WHATWG URL-based normalizer that only recognized a subset of address encodings. It handled dotted-quad IPv4 and two narrow IPv4-mapped IPv6 patterns (::ffff:192.168.0.1 and ::ffff:7f00:1) but missed alternate IPv4 notations that Node's resolver/connector will happily accept (decimal, octal, hexadecimal, and single-integer forms), IPv4-compatible addresses under ::/96 such as ::7f00:1 and ::127.0.0.1, and IPv6 transition prefixes that carry an embedded IPv4 destination: 6to4 (2002::/16, RFC 3056) and NAT64 well-known prefix 64:ff9b::/96 (RFC 6052). By expressing an internal destination through one of these unhandled forms, an unauthenticated actor could slip past the blocklist and cause the Ghost server to open a TCP connection to an internal host. The upstream PR (30917) replaces the manual parsing with ipaddr.js and a fail-closed, default-deny model: any address whose range is not plain 'unicast' is treated as private, unrecognized formats raise and are blocked, and transition prefixes (IPv4-mapped ::ffff:0:0/96, RFC 6145 translated, RFC 6052 NAT64 well-known, and 6to4) are unwrapped to their embedded IPv4 address and classified recursively against the same private-range rules, while the network-specific NAT64 local-use prefix 64:ff9b:1::/48 remains unconditionally blocked. Because the fix is a classification error rather than a memory-safety bug, the impact stays at low confidentiality with no integrity or availability effect.
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
AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:N/A:N
Network-reachable and unauthenticated (AV:N/PR:N), but needs specific bypass encoding and network config (AC:H); reaching the internal network is a scope change (S:C) with only blind limited info (C:L), no integrity/availability impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
Ghost is a Node.js content management system. From 6.0.9 until 6.65.0, a validation issue allowed some functionality, such as Webmentions, to be abused by an unauthenticated user to make limited HTTP requests to hosts in the Ghost server's internal network on some network configurations. A successful attack would not result in any response data being returned. This issue is fixed in version 6.65.0.
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
Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
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
Arbitrary code execution in Ghost CMS versions 0.7.2 through 6.19.0 allows authenticated attackers with theme upload pri
An arbitrary file upload vulnerability in the file upload module of Ghost CMS v4.42.0 allows attackers to execute arbitr
An arbitrary file upload vulnerability in the file upload module of Ghost v4.39.0 allows attackers to execute arbitrary
SQL injection in Ghost CMS versions 3.24.0 through 6.19.0 allows unauthenticated attackers to read arbitrary database da
Ghost through 5.85.1 allows remote attackers to bypass an authentication rate-limit protection mechanism by using many X
Ghost through 5.76.0 allows stored XSS, and resultant privilege escalation in which a contributor can take over any acco
Ghost before 5.82.0 allows CSV Injection during a member CSV export. Rated high severity (CVSS 8.8), this vulnerability
Server-side request forgery (SSRF) vulnerability in Ghost CMS < 3.10.0 allows an attacker to scan local or external netw
Ghost before 5.42.1 allows remote attackers to read arbitrary files within the active theme's folder via /assets/built%2
Ghost is a Node.js CMS. Rated medium severity (CVSS 6.8), this vulnerability is remotely exploitable, no authentication
Ghost is an open source content management system. Rated medium severity (CVSS 6.5), this vulnerability is remotely expl
EUVD-2026-92755
GHSA-r7f2-6fj8-6fg2
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB