Skip to main content

Ghost CMS CVE-2026-53949

| EUVDEUVD-2026-39020 MEDIUM
Information Exposure (CWE-200)
2026-06-24 GitHub_M GHSA-jx35-x7fj-vgpr
5.3
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Send crafted filter queries to Ghost public API
  2. Delivery
    Partial bypass of private field validation
  3. Exploit
    Iteratively probe password hash field via filter oracle
  4. Execution
    Reconstruct full hash from enumerated responses
  5. Persist
    Submit recovered hash to offline password cracker
  6. Impact
    Obtain 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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

Ghost 5.46.1, < 6.21.2

Affected Packages

npm ghost fix: 6.21.2

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

Vendor (GitHub_M) PRIMARY 5.3 MEDIUM
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
vuln.today AI 5.3 MEDIUM

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.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/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
Unchanged
Confidentiality
Low
Integrity
None
Availability
None

Lifecycle Timeline

1
Patch available
Jun 24, 2026 - 20:03 EUVD

DescriptionCVE.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

EPSS Score
0.2%
Top 88% exploitable
Prevalence
Medium
popular Node.js CMS among developer and creator communities
Threat Intel
1
1 source
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA GitHub VulDB

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

26
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +26
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

More in Ghost

View all
CVE-2026-22594 HIGH POC
8.1 Jan 10

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

CVE-2026-29053 HIGH POC
7.6 Mar 05

Arbitrary code execution in Ghost CMS versions 0.7.2 through 6.19.0 allows authenticated attackers with theme upload pri

CVE-2022-28397 CRITICAL POC
9.8 Apr 12

An arbitrary file upload vulnerability in the file upload module of Ghost CMS v4.42.0 allows attackers to execute arbitr

CVE-2022-27139 CRITICAL POC
9.8 Apr 12

An arbitrary file upload vulnerability in the file upload module of Ghost v4.39.0 allows attackers to execute arbitrary

CVE-2026-26980 CRITICAL POC
9.4 Feb 20

SQL injection in Ghost CMS versions 3.24.0 through 6.19.0 allows unauthenticated attackers to read arbitrary database da

CVE-2024-34451 CRITICAL POC
9.1 Jun 16

Ghost through 5.85.1 allows remote attackers to bypass an authentication rate-limit protection mechanism by using many X

CVE-2024-23724 CRITICAL POC
9.0 Feb 11

Ghost through 5.76.0 allows stored XSS, and resultant privilege escalation in which a contributor can take over any acco

CVE-2024-34448 HIGH POC
8.8 May 22

Ghost before 5.82.0 allows CSV Injection during a member CSV export. Rated high severity (CVSS 8.8), this vulnerability

CVE-2020-8134 HIGH POC
8.1 Mar 20

Server-side request forgery (SSRF) vulnerability in Ghost CMS < 3.10.0 allows an attacker to scan local or external netw

CVE-2023-32235 HIGH POC
7.5 May 05

Ghost before 5.42.1 allows remote attackers to read arbitrary files within the active theme's folder via /assets/built%2

CVE-2021-29484 MEDIUM POC
6.8 Apr 29

Ghost is a Node.js CMS. Rated medium severity (CVSS 6.8), this vulnerability is remotely exploitable, no authentication

CVE-2023-40028 MEDIUM POC
6.5 Aug 15

Ghost is an open source content management system. Rated medium severity (CVSS 6.5), this vulnerability is remotely expl

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