GitHub Advisoryadvisory · npm
GHSA-jx35-x7fj-vgpr Ghost Content API filter bypass reveals private fields
MEDIUM
Official page ↗
- Aliases
- CVE-2026-53949
- Ecosystem
- npm
- Packages
- ghost
- Severity
- Moderate
- CVSS vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
- Weaknesses
- CWE-200, CWE-693
- Reviewed
- 2026-08-05
Affected packages
• npm ghost: >= 5.46.1, < 6.21.2 → fixed in 6.21.2
Description
Impact
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.
Vulnerable versions
This vulnerability is present in Ghost from v5.46.1 up to v6.21.1.
Patches
v6.21.2 contains a fix for this issue.
How to update
For self-hosters using Docker, find Docker's official Ghost image here. Updating a Docker-based Ghost instance is documented here.
If your Ghost is a Ghost-CLI install see our documentation on updating it to the latest version here.
Workarounds
If upgrading immediately is not possible, block or filter requests to Content API endpoints where the `filter` query parameter contains `password` or `email` (including any compound form such as `users.password`, `users.email`, `authors.password`, `authors.email`). Reject requests at a reverse proxy / WAF layer before they reach Ghost.
Example (case-insensitive) pattern to block on the raw querystring:
```
filter=[^&]*(password|email)
```
References
Ghost thanks crnkovic for disclosing this vulnerability responsibly.
For more information
If you have any questions or comments about this advisory, email Ghost at [email protected].
Related
Alias · CVE (1)
- CVE-2026-53949 Ghost is a Node.js content management system. vulnerability