Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify self-hosted Ghost instance with Nginx proxy
-
DeliveryCraft X-Forwarded-For header with rotating spoofed IPs
-
ExploitSend burst of requests to rate-limited endpoint
-
ExecutionGhost rate-limiter resets per spoofed IP
-
ImpactBrute-force credentials or enumerate without lockout
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V6 - Authentication IP-independent access control
|
| Exploitation Conditions | Exploitation requires three concurrent conditions: (1) Ghost CLI version prior to 1.30.1 must have generated the site's Nginx configuration; (2) Nginx must be configured with proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for - this is the specific directive that appends attacker-controlled header values rather than overwriting them with the real connecting IP; and (3) the attacker must have network-level access to the Ghost HTTP/HTTPS endpoint. No authentication is required (CVSS 4.0 PR:N). Ghost(Pro) managed hosting is explicitly not affected. The AT:P designation in the CVSS 4.0 vector confirms the Nginx directive is a required precondition, meaning instances using $remote_addr or no X-Forwarded-For forwarding are not vulnerable. Exploitation does not yield code execution or direct credential disclosure - it removes the rate-limiting barrier, enabling downstream attacks such as brute-force or enumeration. |
| Impact | The CVSS 4.0 score of 6.3 (AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N) reflects moderate real-world risk: network-reachable with no authentication required and low attack complexity, but bounded by a specific attack-target prerequisite (AT:P) - the Nginx $proxy_add_x_forwarded_for directive must be present. The VC:L impact is consistent with the vulnerability enabling enumeration and brute-force beyond what rate limits would normally permit, with no direct integrity or availability consequence from the bypass itself. No EPSS score was supplied in the intelligence feed, so exploitation probability cannot be quantified from that signal. No active exploitation is confirmed (not in CISA KEV) and no public proof-of-concept code was identified, distinguishing this from an immediately weaponized risk. The AT:P constraint meaningfully limits the exploitable population to self-hosted Ghost instances specifically using the affected Nginx directive - Ghost(Pro) cloud-hosted deployments and instances using $remote_addr in their Nginx config are not affected. Overall this is a real but targeted risk: trivial to exploit when conditions are met, but the AT:P prerequisite and absence of known active exploitation place this below the urgency threshold of an unconditional remote code execution. |
| Exploit ScenarioDerived | An attacker targeting a self-hosted Ghost blog sends repeated login or API requests, each with a different fabricated IP value in the X-Forwarded-For header (e.g., X-Forwarded-For: 192.0.2.1, then X-Forwarded-For: 192.0.2.2), and the $proxy_add_x_forwarded_for Nginx directive causes Ghost to treat each request as originating from a distinct IP, resetting the rate-limit counter every time. This allows unlimited brute-force of Ghost admin credentials or abuse of any rate-limited endpoint - such as password reset or signup flows - without triggering lockout or alerting. No publicly known exploit code is required; the technique is well-understood HTTP header manipulation requiring only standard HTTP tools. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 31, 2026
IP spoofing via X-Forwarded-For header manipulation in Ghost CLI before 1.30.1 enables unauthenticated remote attackers to defeat rate-limiting controls on self-hosted Ghost instances. The vulnerability arises when Nginx is configured with the $proxy_add_x_forwarded_for directive, which appends attacker-supplied IP values to the header chain, causing Ghost's rate-limiter to treat each crafted request as originating from a distinct, unseen IP address. No public exploit has been identified at time of analysis and no CISA KEV listing exists, but the low attack complexity makes this straightforward to abuse once a vulnerable instance is identified.
RemediationAI
Upgrade Ghost CLI to version 1.30.1 or later, which is the vendor-confirmed patched release per the GitHub security advisory GHSA-wjx2-9fpq-8997 and the VulnCheck advisory at https://www.vulncheck.com/advisories/ghost-cli-ip-spoofing-via-x-forwarded-for-header. The fix corrects the Nginx configuration template generated by Ghost CLI to properly handle the X-Forwarded-For header chain. For operators who cannot upgrade immediately, the targeted compensating control is to replace $proxy_add_x_forwarded_for with $remote_addr in the Nginx proxy_set_header X-Forwarded-For directive; this discards any client-supplied header values and sets only the actual connecting IP, eliminating the spoofing vector. The trade-off is that legitimate upstream proxies in front of Nginx will no longer pass real client IPs downstream. Alternatively, configure Nginx's set_real_ip_from and real_ip_header directives to enforce trusted-proxy IP validation, accepting X-Forwarded-For only from known upstream proxy addresses - this preserves legitimate IP forwarding while rejecting attacker-controlled header values. Running ghost config or ghost setup after upgrading to 1.30.1 may be required to regenerate the corrected Nginx configuration.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Ghost CLI (CPE: cpe:2.3:a:tryghost:ghost-cli:*:*:*:*:*:*:*:*) is the command-line management tool used to install, configure, and maintain self-hosted Ghost CMS deployments, including generation of Nginx reverse-proxy configuration files. The root cause is CWE-348 (Use of Less Trusted Source): Ghost's rate-limiting middleware trusts the X-Forwarded-For header to identify client IP addresses without enforcing validation across the full header chain. When Nginx is configured with proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for, the directive appends the connecting client's actual IP to any X-Forwarded-For values already present in the inbound request rather than overwriting them. An attacker can pre-populate that header with an arbitrary IP before the request reaches Nginx, causing Ghost to read the spoofed address as the effective client IP and resetting the per-IP rate-limit counter on each request. The misconfiguration is technically the Nginx directive choice - using $proxy_add_x_forwarded_for instead of $remote_addr - which Ghost CLI versions prior to 1.30.1 generated in their Nginx configuration templates.
Know when Ghost Cli 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
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
Network-reachable, unauthenticated; low confidentiality impact reflects rate-limit bypass enabling enumeration or brute-force; no integrity or availability impact from the bypass itself.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
1DescriptionCVE.org
Ghost CLI before 1.30.1 contains an IP spoofing vulnerability that allows unauthenticated remote attackers to bypass rate-limiting controls by manipulating the X-Forwarded-For header through a misconfigured Nginx configuration. Attackers can append attacker-controlled values to the header chain using the $proxy_add_x_forwarded_for directive to present an arbitrary IP address, circumventing Ghost's rate-limiting mechanisms on self-hosted instances.
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
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
EUVD-2026-51595
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB