CVE-2026-53949: Ghost Package Vulnerability Allows Bypass of Content API Filters
Summary
CVE-2026-53949: Ghost Content API filter bypass reveals private fields. Affects ghost versions >= 5.46.1, < 6.21.2. Fixed in 6.21.2. How to fix ↓
Also tracked for
- ghost · Bitnami
The same CVE-2026-53949 is tracked separately for each ecosystem and vendor. Its fix information is the same; the package and affected versions differ.
Check if this vulnerability affects your application
Upload a manifest or SBOM and we'll show whether you're affected, plus every other risky package in the same scan.
No signup required · Results in about 60 seconds
Background
Ghost is a popular open-source publishing platform designed for creating and managing online content. It offers a user-friendly interface and powerful features for bloggers and publishers. However, certain versions of Ghost have a vulnerability that allows unauthorized access to private fields through the Content API, potentially exposing sensitive information.
Vulnerability Detail
The vulnerability arises from inadequate validation on filters applied to public API endpoints, which can be partially bypassed. This flaw allows attackers to perform brute force attacks to reveal private fields. If SQLite is used, password hashes are fully accessible. In the case of MySQL, the case sensitivity of password hashes is lost, making further brute force attacks ineffective. This vulnerability affects Ghost versions from 5.46.1 to 6.21.1.
How To Fix
Latest published version: 6.72.0 as of 22 Oct 2026
npm install ghost@6.72.0
Upgrading to it may include breaking changes; the version below is the minimum fixed release for this vulnerability.
If you need the minimum change
6.21.2
This is the first release that contains the fix.
npm install ghost@6.21.2
Tip — Not sure which version your app runs? Vulert can match this fix to it. Scan free →
Workaround
If immediate upgrading is not feasible, you can implement a workaround by blocking or filtering requests to Content API endpoints that contain the 'filter' query parameter with 'password' or 'email'. This can be done at a reverse proxy or WAF layer. Here is an example of a case-insensitive pattern to block in the raw query string:
filter=[^&]*(password|email)
Conclusion
The Ghost package has a vulnerability that can lead to the exposure of private fields through the Content API. It is crucial to update to the patched version 6.21.2 or implement the suggested workaround to mitigate the risk of unauthorized access to sensitive information.
See every vulnerability recorded for ghost →
FAQ
The vulnerability allows for the bypass of filters on public API endpoints, potentially exposing private fields through brute force attacks.
Ghost versions from 5.46.1 to 6.21.1 are vulnerable to this issue.
You can use Vulert's playground to check if your application is affected by this vulnerability without needing to sign up.
Implement the provided workaround to block requests that may expose sensitive information until you can upgrade.
The CVSS score for this vulnerability is 5.3, indicating a moderate severity level.
Related vulnerabilities
Recent vulnerabilities recorded for ghost.