Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as privileged staff user
-
DeliveryCreate webhook targeting internal host
-
ExploitTrigger subscribed event
-
ExecutionGhost server issues internal request
-
ImpactObserve responses to map internal services
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 | Requires an authenticated Ghost staff user with permission to create or edit webhooks (the webhooks feature, present from 1.18.0 through pre-6.27.0). Exploitation depends on the vulnerable default behavior in versions before 6.27.0 where webhook delivery used the internal |
| Impact | This is a genuinely low-priority finding despite being a network-vector SSRF. The supplied CVSS 3.1 vector (AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:N/A:N = 2.7 Low) is internally consistent with the description: exploitation requires an already-authenticated, privileged Ghost staff user (PR:H) who can create or edit webhooks, and the impact is limited to low-confidentiality information disclosure (C:L) - probing/mapping internal hosts - with no integrity or availability impact. No EPSS score was provided, the CVE is NOT on CISA KEV, and no public exploit (POC) was supplied, so there is no public exploit identified at time of analysis. The key tension is the privilege model: SSRF is only reachable by a trusted staff member, making this primarily an insider/post-compromise lateral-reconnaissance issue rather than an externally weaponizable flaw. The source commit confirms the root cause and fix - webhook delivery is routed through an external-only request library (request-external) by default, gated behind a new |
| Exploit ScenarioDerived | An authenticated Ghost staff user with access to create or edit webhooks configures a webhook target URL pointing at an internal address (e.g. a cloud metadata endpoint or an internal service). When the subscribed event fires, the Ghost server itself issues the outbound request, letting the attacker enumerate reachable internal hosts and services and infer their responses. No public exploit code was provided; the attack leverages normal webhook functionality rather than a memory-safety bug. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 05, 2026
Server-side request forgery in the Ghost CMS webhooks feature (versions 1.18.0 through releases prior to 6.27.0) allows an authenticated staff user who can create or edit webhooks to point a webhook target_url at internal hosts and force the Ghost server to issue requests to them. The CVSS vector (AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:N/A:N, score 2.7) confirms this is a network-reachable but privileged-account-required issue whose impact is limited to low confidentiality loss - blind or semi-blind probing rather than response retrieval or code execution - and there is no public exploit identified at time of analysis. Ghost 6.27.0 fixes the issue by routing webhook delivery through a request library that blocks internal IPs unless the operator explicitly opts in via a new configuration flag.
RemediationAI
Vendor-released patch: upgrade to Ghost 6.27.0, the version in which webhook delivery no longer follows redirects or resolutions into internal address space unless explicitly permitted. Upgrading is the only complete fix and introduces no downside for standard installations, because the new security:allowWebhookInternalIPs configuration key defaults to false in core/shared/config/defaults.json. If an immediate upgrade is not possible, note that the exploitable condition is the combination of a privileged staff account plus the pre-6.27.0 unfiltered request library, so compensating controls should target that path: restrict the Staff role capability that grants webhook creation/editing to a minimal, trusted set of administrators so untrusted editors cannot supply an arbitrary target_url, and/or apply outbound egress filtering (for example, deny the Ghost host access to RFC1918 ranges, link-local 169.254.0.0/16, and loopback) at the network or container layer. The egress-filtering trade-off is that it will also block legitimate webhook deliveries to internal services, which must then be explicitly allowlisted. On upgraded deployments, do NOT set security:allowWebhookInternalIPs to true unless internal webhook delivery is genuinely required - doing so deliberately restores the legacy behavior and the SSRF exposure, so any operator who enables it should treat the feature as equivalent to intentionally allowing the Ghost server to reach private networks.
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, and its webhooks subsystem lets staff-configured integrations receive HTTP callbacks on events such as post.added. The vulnerable code lived in ghost/core/core/server/services/webhooks/webhook-trigger.js, which instantiated the internal @tryghost/request helper for delivery without any SSRF or private-range IP filtering, making the attacker-controlled target_url the server's outbound request destination. This is CWE-918 (Server-Side Request Forgery): user-supplied URLs are fetched by the server without validation of the resolved destination. The upstream commit 815962dd2760e55c5dc8d0fb7fac732a7634566f addresses the root cause by conditionally loading a new module, core/lib/request-external, whenever the configuration value security:allowWebhookInternalIPs is false - and that value is added to defaults.json as false, meaning secure behavior is the default. The new request-external path performs DNS resolution (the accompanying integration test stubs dns.promises.lookup to validate this) so it can reject destinations that resolve to internal addresses, while the flag preserves backwards compatibility for self-hosters who legitimately deliver webhooks to internal services. The fix also pins the outbound call to method: 'POST'.
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:L/PR:H/UI:N/S:U/C:L/I:N/A:N
Webhook creation requires a privileged staff/integration account (PR:H) over the network with no user interaction; impact is limited to low-confidentiality internal host probing (C:L), with no integrity or availability effect.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
Ghost is a Node.js content management system. From 1.18.0 until 6.27.0, an SSRF vulnerability in the webhooks feature allowed staff users to probe internal hosts from the Ghost server. This issue is fixed in version 6.27.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.
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-92773
GHSA-354h-gmhv-mr9c
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB