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
Share

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

2
Patch available
Jun 24, 2026 - 20:03 EUVD
Analysis Generated
Jun 24, 2026 - 19:22 vuln.today

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.

AnalysisAI

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.

Technical ContextAI

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.

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.

CVE-2024-41713 CRITICAL POC
9.1 Oct 21

A vulnerability in the NuPoint Unified Messaging (NPM) component of Mitel MiCollab through 9.8 SP1 FP2 (9.8.1.201) could

CVE-2024-55591 CRITICAL POC
9.8 Jan 14

FortiOS and FortiProxy contain an authentication bypass via the Node.js websocket module allowing unauthenticated remote

CVE-2023-44487 HIGH POC
7.5 Oct 10

Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour

CVE-2014-7205 CRITICAL POC
10.0 Oct 08

Eval injection vulnerability in the internals.batch function in lib/batch.js in the bassmaster plugin before 1.5.2 for t

CVE-2025-59528 CRITICAL POC
10.0 Sep 22

Flowise version 3.0.5 contains a remote code execution vulnerability in the CustomMCP node. The mcpServerConfig paramete

CVE-2017-14849 HIGH POC
7.5 Sep 28

Node.js 8.5.0 before 8.6.0 allows remote attackers to access unintended files, because a change to ".." handling was inc

CVE-2017-5941 CRITICAL POC
9.8 Feb 09

An issue was discovered in the node-serialize package 0.0.4 for Node.js. Rated critical severity (CVSS 9.8), this vulner

CVE-2014-0224 HIGH POC
7.4 Jun 05

OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph

CVE-2014-3744 HIGH POC
7.5 Oct 23

Directory traversal vulnerability in the st module before 0.2.5 for Node.js allows remote attackers to read arbitrary fi

CVE-2014-9566 HIGH POC
7.5 Mar 10

Multiple SQL injection vulnerabilities in the Manage Accounts page in the AccountManagement.asmx service in the Solarwin

CVE-2013-4660 MEDIUM POC
6.8 Jun 28

The JS-YAML module before 2.0.5 for Node.js parses input without properly considering the unsafe !!js/function tag, whic

CVE-2016-2107 MEDIUM POC
5.9 May 05

The AES-NI implementation in OpenSSL before 1.0.1t and 1.0.2 before 1.0.2h does not consider memory allocation during a

Share

CVE-2026-53944 vulnerability details – vuln.today

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