Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSend crafted filter queries to Ghost public API
-
DeliveryPartial bypass of private field validation
-
ExploitIteratively probe password hash field via filter oracle
-
ExecutionReconstruct full hash from enumerated responses
-
PersistSubmit recovered hash to offline password cracker
-
ImpactObtain plaintext credential for account takeover
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V14 - Data Protection Data exposure prevention
MITRE ATT&CK
2 techniques across 2 tactics: Collection, Discovery The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | No authentication is required; the attack targets public API endpoints accessible to any network client. The vulnerability affects all Ghost deployments in the version range regardless of content configuration or access mode. The primary limiting factor is the database backend: SQLite deployments are fully exploitable (hashes recoverable), while MySQL deployments yield case-normalized hashes that the vendor assesses as practically uncrackable in further attacks. The attack is brute-force in nature, requiring a large number of API requests to enumerate private field values, which creates a detection opportunity via request volume anomalies. No specific Ghost feature needs to be enabled beyond the default public API, which is on by default in all standard deployments. |
| Impact | The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N, score 5.3) scores this as a Medium, and that framing is broadly consistent with real-world risk - with one important caveat. The C:L rating understates the concrete credential risk on SQLite deployments: a successfully recovered Bcrypt or similar password hash gives an attacker a direct path to account takeover via offline cracking, which is meaningfully more dangerous than generic 'low' information exposure. Conversely, MySQL deployments face substantially lower practical risk because the case-degraded hashes are unlikely to be crackable. No EPSS score was provided in the available intelligence, and the vulnerability has not been listed in CISA KEV, suggesting no confirmed active exploitation campaigns at this time. The brute-force nature of the attack - requiring many requests to enumerate private fields - introduces some detection opportunity and minor practical friction, though no authentication barrier exists. Net assessment: deployments on SQLite should treat this as a higher-priority credential-exposure risk than the 5.3 score implies; MySQL deployments face materially lower practical risk and can prioritize accordingly. |
| Exploit ScenarioDerived | An unauthenticated attacker sends a high volume of crafted HTTP requests to Ghost's public API, each embedding filter expressions that reference private model fields (such as password hash columns) with specific value predicates. By observing whether the API returns results or not, the attacker enumerates field contents character by character or range by range - a classic filter oracle attack. On a SQLite-backed Ghost instance, this process eventually yields a recoverable password hash that can be submitted to an offline cracking tool. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 24, 2026
Filter validation bypass in Ghost CMS public API endpoints exposes private fields - including password hashes - to unauthenticated remote attackers via repeated brute-force probing. Instances running SQLite are most severely impacted: full password hashes are recoverable, enabling offline cracking. MySQL-backed instances leak structurally degraded hashes (case information lost), which the vendor assesses would render subsequent cracking attempts fruitless. No public exploit code exists and the vulnerability is not in CISA KEV at time of analysis, but the unauthenticated, network-accessible nature of the flaw lowers the bar for opportunistic discovery.
RemediationAI
Upgrade to Ghost 6.21.2 or later, which is the vendor-confirmed patched release per the GitHub Security Advisory at https://github.com/TryGhost/Ghost/security/advisories/GHSA-jx35-x7fj-vgpr. No workarounds are documented in the available advisory data. For operators unable to patch immediately, consider rate-limiting or IP-allowlisting access to the public API endpoints at the reverse-proxy or WAF layer to raise the cost of brute-force enumeration - note this is a detection and friction control, not a fix, and determined attackers with distributed infrastructure can still succeed. SQLite-backed deployments should treat an upgrade as urgent and consider invalidating all user sessions and forcing password resets post-patch in case hashes were already exfiltrated.
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 an open-source Node.js content management system (CPE: cpe:2.3:a:tryghost:ghost:*:*:*:*:*:*:*:*) widely used for developer blogs, newsletters, and creator publishing platforms. The vulnerability stems from CWE-200 (Exposure of Sensitive Information to an Unauthorized Actor): the public-facing REST API exposes a filter parameter meant to query published content, but input validation on that filter can be partially circumvented. By crafting filter expressions that reference private model fields - fields that should be inaccessible to unauthenticated callers - an attacker can iteratively probe field values through differential responses (a filter oracle or enumeration side-channel). The severity of the resulting data leakage depends on the configured database backend: SQLite stores password hashes verbatim and they are fully recoverable this way, while MySQL normalizes string case before storage, degrading the extracted hash and largely defeating downstream cracking.
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:N/UI:N/S:U/C:L/I:N/A:N
Public API target gives AV:N and PR:N; brute-force enumeration raises AC slightly but L is defensible given no special preconditions; C:L reflects partial private-field disclosure without full system confidentiality loss.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
Ghost is a Node.js content management system. From 5.46.1 until 6.21.2, the validation applied to filters on the public API endpoints could be partially bypassed, making it possible to reveal private fields via a brute force attack. If SQLite was used as the database password hashes were fully accessible. If MySQL was used as the database the password hashes' case (uppercase / lowercase) would have been lost, which would likely have rendered a further brute force attack on the discovered hashes fruitless. This vulnerability is fixed in 6.21.2.
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
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-39020
GHSA-jx35-x7fj-vgpr
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB