Stored cross-site scripting in Ghost file uploads on local storage
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- Required
- Attack complexity
- Low
- Impact type
- Code execution, Cross-site scripting
- Confidentiality · integrity · availability
- High · High · None
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-434 and CWE-79.
Summary
Ghost from 6.22.1 before 6.64.0 does not apply its content type restriction to uploaded files when the default local storage adapter is used, so files are served with a content type derived from their file extension (CWE-79). A staff user with low privileges can upload a file that runs as a script on the site's domain when another user opens it, possibly compromising other staff admin sessions.
Written with Claude Haiku 5.5 from the sources below · 2026-10-29
Description from the CNA
Ghost is a Node.js content management system. From 6.22.1 until 6.64.0, Ghost restricted the content type used to serve uploaded files to prevent browsers from executing them. On sites using the default local storage adapter, this restriction was not applied, so files uploaded by any staff user were served with a content type derived from their file extension. This could be used to host scripts on the site's domain, possibly resulting in compromise of other staff users' admin sessions. This issue is fixed in version 6.64.0.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| TryGhost | Ghost | 6.22.1 to before 6.64.0 | 6.64.0 | Patch available | CNA |
| — | ghost (npm) | 6.22.1 to before 6.64.0 | 6.64.0 | Patch available | GHSA-gfjp-2p8f-94qv |
- Ghost VendorTryGhost Affected 6.22.1 to before 6.64.0 Fixed in 6.64.0 Patch available CNA
- ghost (npm) Vendor— Affected 6.22.1 to before 6.64.0 Fixed in 6.64.0 Patch available GHSA-gfjp-2p8f-94qv
Remediation
Upgrade Ghost to version 6.64.0, which fixes the issue, as the npm package ghost lists it as the fixed version.
Written with Claude Haiku 5.5 from the sources below · 2026-10-29
- Fix · CNA Ghost (TryGhost) Fixed in 6.64.0
- Fix · GHSA-gfjp-2p8f-94qv ghost (npm) Fixed in 6.64.0 Advisory →
Timeline
- 2026-10-05 Threatist record created from CVE-2026-105679
- 2026-10-06 CISA SSVC decision points changed
- 2026-10-06 Priority changed: MEDIUM → LOW
- 2026-10-07 Alias added: GHSA-gfjp-2p8f-94qv
- 2026-10-07 Fix available: npm/[email protected] · GHSA-gfjp-2p8f-94qv
- 2026-10-07 CVSS score added · GHSA-gfjp-2p8f-94qv
- 2026-10-07 Weakness changed · GHSA-gfjp-2p8f-94qv
- 2026-10-07 6 new references · GHSA-gfjp-2p8f-94qv
References
More TryGhost vulnerabilities
- TI-2026-21459 Ghost has a SQL Injection in its Content API CVSS 3.1CRITICAL 9.4
- TI-2022-10277 An arbitrary file upload vulnerability in the file upload module of Ghost v4.39.0 allows… CVSS 3.1CRITICAL 9.8
- TI-2024-22785 Ghost through 5.85.1 allows remote attackers to bypass an authentication rate-limit… CVSS 3.1CRITICAL 9.1
- TI-2023-14843 Ghost vulnerable to disclosure of private API fields CVSS 3.1HIGH 7.5
- TI-2025-09049 Ghost 6.0.6 - SSRF via oEmbed Bookmark CVSS 4.0MEDIUM 6.1
- TI-2023-20918 Arbitrary file read via symlinks in Ghost CVSS 3.1MEDIUM 6.5
Sources
- CVE-2026-105679 · CVE Program
- CVE-2026-105679 · NVD
- FIRST EPSS
- GHSA-gfjp-2p8f-94qv · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences