CVE-2026-53948 json
Ghost: File Upload Content-Type Spoofing
published 2026-06-24 4 mo ago modified 2026-10-25 14 d ago also BIT-ghost-2026-53948 , EUVD-2026-39021 , GHSA-944x-pm95-3jpr
- cvss
- 5.4
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.2%
- EPSS 0.2% chance of exploitation in 30 days, percentile 13%
- public exploits
- 0
- none known
Summary
Ghost is a Node.js content management system. From 6.19.4 until 6.21.1, insufficient validation of the client-supplied Content-Type on Ghost's Admin API file upload endpoint allowed uploaded files to be served from the site with an attacker-chosen content type on S3/GCS storage backends. On installations that serve uploaded files from the same origin as the site, this could have been used to facilitate stored cross-site scripting against site visitors or staff. This vulnerability is fixed in 6.21.1.
Patch / fix
- npm ghost 6.21.1
- bitnami ghost 6.21.1
- ghost ghost 6.21.1
- github.com/TryGhost/Ghost@d659e75 commit
- github.com/TryGhost/Ghost#26751 pull request
- github.com/TryGhost/Ghost/releases/tag/v6.21.1 release
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- partial
- Assessed
- 4 mo ago
Exploit prediction
0.23% chance of exploitation in the next 30 days, higher than 13% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 5.4 | CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N |
| GitHub | 3.1 | 5.4 | CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N |
| OSV | 3.1 | 5.4 | CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| npm | ghost | >=6.19.4, <6.21.1 |
6.21.1 |
| bitnami | ghost | >=6.19.4, <6.21.1 |
6.21.1 |
Affected products
- TryGhost Ghost
Classification
- Weakness
-
- CWE-434 Unrestricted Upload of File with Dangerous Type
References
-
github.com
/TryGhost/Ghost/pull/26751
web
-
github.com
/TryGhost/Ghost/commit/d659e752d6636144d75b9aa94062cdbc88a16b21
web
-
github.com
/TryGhost/Ghost/security/advisories/GHSA-944x-pm95-3jpr
web
-
nvd.nist.gov
/vuln/detail/CVE-2026-53948
advisory, web
-
github.com
/TryGhost/Ghost
package
-
github.com
/TryGhost/Ghost/releases/tag/v6.21.1
web
Sources
- CVE List CVE-2026-53948
- GitHub Advisory GHSA-944x-pm95-3jpr
- NVD CVE-2026-53948
- OSV BIT-ghost-2026-53948
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.