{"id":"CVE-2026-105679","aliases":["BIT-ghost-2026-104411","BIT-ghost-2026-105679","EUVD-2026-92770","GHSA-gfjp-2p8f-94qv"],"status":"published","title":"Ghost: Stored XSS via File Uploads on Local Storage","description":"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.","severity":{"version":"3.1","score":7.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:N","level":"high","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-11","score":0.00237,"percentile":0.14825,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-434","CWE-79"],"published":"2026-10-02T11:37:55.691Z","modified":"2026-10-28T02:31:06Z","fixes":[{"ecosystem":"npm","package":"ghost","fixed_in":["6.64.0"],"sources":["ghsa"]}],"affected":[{"source":"ghsa","ecosystem":"npm","package":"ghost","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"6.22.1"},{"fixed":"6.64.0"}]}]},{"source":"osv","ecosystem":"Bitnami","package":"ghost","ranges":[{"type":"SEMVER","events":[{"introduced":"6.22.1"},{"fixed":"6.64.0"}]}],"bundled":2},{"source":"osv","ecosystem":"Bitnami","package":"ghost","ranges":[{"type":"SEMVER","events":[{"introduced":"6.22.1"},{"fixed":"6.64.0"}]}],"bundled":2},{"source":"osv","ecosystem":"npm","package":"ghost","ranges":[{"type":"SEMVER","events":[{"introduced":"6.22.1"},{"fixed":"6.64.0"}]}],"bundled":2}],"products":[{"vendor":"tryghost","product":"ghost"}],"references":[{"url":"https://github.com/TryGhost/Ghost/security/advisories/GHSA-gfjp-2p8f-94qv","tags":["x_refsource_CONFIRM","web","advisory"]},{"url":"https://github.com/TryGhost/Ghost/pull/30762","tags":["x_refsource_MISC","web","fix"]},{"url":"https://github.com/TryGhost/Ghost/commit/58669d5c8b898f8b69c1287c2779b29ecc7eb918","tags":["x_refsource_MISC","web","fix"]},{"url":"https://github.com/TryGhost/Ghost/releases/tag/v6.64.0","tags":["x_refsource_MISC","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-105679","tags":["web","advisory"]},{"url":"https://github.com/advisories/GHSA-gfjp-2p8f-94qv"},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-104411","tags":["web","advisory"]},{"url":"https://www.vulncheck.com/advisories/ghost-6.22.1-before-6.64.0-stored-xss-via-local-storage-file-uploads","tags":["web","advisory"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/104xxx/CVE-2026-104411.json","tags":["advisory"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/105xxx/CVE-2026-105679.json","tags":["advisory"]},{"url":"https://github.com/TryGhost/Ghost","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2026-105679","title":"Ghost: Stored XSS via File Uploads on Local Storage","description":"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.","status":"published","published":"2026-10-05T19:22:40.737Z","modified":"2026-10-05T19:51:20.951Z","cvss":[{"version":"3.1","score":7.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:N","level":"high","assessor":"cna"}],"cwes":["CWE-79","CWE-434"],"updated_at":"2026-11-02T14:19:57.100857Z"}],"euvd":[{"id":"EUVD-2026-92770","description":"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.","status":"published","published":"2026-10-05T19:22:40Z","modified":"2026-10-05T19:51:20Z","cvss":[{"version":"3.1","score":7.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:N","level":"high"}],"updated_at":"2026-11-02T17:27:39.05741Z"}],"ghsa":[{"id":"GHSA-gfjp-2p8f-94qv","title":"Ghost: Stored XSS via File Uploads on Local Storage","description":"### Impact\n\nGhost restricts the content type that uploaded files are served with, 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.\n\n### Vulnerable versions\n\nThis vulnerability is present in Ghost from v6.22.1 up to v6.64.0.\n\n### Patches\n\nv6.64.0 contains a fix for this issue.\n\n### How to update\n\nFor self-hosters using Docker, find [Docker's official Ghost image here](https://hub.docker.com/_/ghost). Updating a Docker-based Ghost instance [is documented here](https://docs.ghost.org/install/docker#updating-ghost). \n\nIf your Ghost is a Ghost-CLI install see our documentation on [updating it to the latest version here](https://docs.ghost.org/update). \n\n### References\n\nGhost thanks [evertrustai](https://github.com/evertrustai), [Thai Son Dinh](https://github.com/sondt99) of VinSOC Labs, [Enis Atılgan](https://github.com/Enis-Atilgan), [Doan Manh Duc](https://github.com/doanmanhducz), [Harshit Gupta (Mr HAX)](https://www.linkedin.com/in/iam-harshit-gupta/), [白墨](https://github.com/5255fgh), and Mukul of [Parameter](https://www.parameter.ai/) for disclosing this vulnerability responsibly.\n\n### For more information\n\nIf you have any questions or comments about this advisory, email us at [security@ghost.org](mailto:security@ghost.org).","status":"published","published":"2026-10-07T20:25:58Z","modified":"2026-10-07T20:25:59Z","cvss":[{"version":"3.1","score":7.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:N","level":"high"}],"cwes":["CWE-79","CWE-434"],"updated_at":"2026-11-02T14:41:29.107536Z"}],"nvd":[{"id":"CVE-2026-105679","description":"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.","status":"published","published":"2026-10-05T20:17:15.107Z","modified":"2026-10-06T15:03:59.427Z","cvss":[{"version":"3.1","score":7.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:N","level":"high","assessor":"secondary"}],"cwes":["CWE-79","CWE-434"],"updated_at":"2026-11-02T14:12:54.129949Z"}],"osv":[{"id":"CVE-2026-104411","title":"Ghost 6.22.1 before 6.64.0 Stored XSS via Local Storage File Uploads","description":"Ghost from 6.22.1 before 6.64.0 contains a stored cross-site scripting vulnerability that allows staff users to host scripts by uploading files served with extension-derived content types on the default local storage adapter. Attackers can upload script-bearing files to the site's domain to compromise other staff users' admin sessions.","status":"published","published":"2026-10-02T11:37:55.691Z","modified":"2026-10-28T02:30:57.398840333Z","cvss":[{"version":"4.0","score":8.5,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N","level":"high"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T15:44:54.236592Z"},{"id":"CVE-2026-105679","title":"Ghost: Stored XSS via File Uploads on Local Storage","description":"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.","status":"published","published":"2026-10-05T19:22:40.737Z","modified":"2026-10-28T02:31:06.171947691Z","cvss":[{"version":"3.1","score":7.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:N","level":"high"}],"cwes":["CWE-434","CWE-79"],"updated_at":"2026-11-02T15:44:54.583213Z"},{"id":"GHSA-gfjp-2p8f-94qv","title":"Ghost: Stored XSS via File Uploads on Local Storage","description":"### Impact\n\nGhost restricts the content type that uploaded files are served with, 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.\n\n### Vulnerable versions\n\nThis vulnerability is present in Ghost from v6.22.1 up to v6.64.0.\n\n### Patches\n\nv6.64.0 contains a fix for this issue.\n\n### How to update\n\nFor self-hosters using Docker, find [Docker's official Ghost image here](https://hub.docker.com/_/ghost). Updating a Docker-based Ghost instance [is documented here](https://docs.ghost.org/install/docker#updating-ghost). \n\nIf your Ghost is a Ghost-CLI install see our documentation on [updating it to the latest version here](https://docs.ghost.org/update). \n\n### References\n\nGhost thanks [evertrustai](https://github.com/evertrustai), [Thai Son Dinh](https://github.com/sondt99) of VinSOC Labs, [Enis Atılgan](https://github.com/Enis-Atilgan), [Doan Manh Duc](https://github.com/doanmanhducz), [Harshit Gupta (Mr HAX)](https://www.linkedin.com/in/iam-harshit-gupta/), [白墨](https://github.com/5255fgh), and Mukul of [Parameter](https://www.parameter.ai/) for disclosing this vulnerability responsibly.\n\n### For more information\n\nIf you have any questions or comments about this advisory, email us at [security@ghost.org](mailto:security@ghost.org).","status":"published","published":"2026-10-07T20:25:58Z","modified":"2026-10-13T08:26:00.402598962Z","cvss":[{"version":"3.1","score":7.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:N","level":"high"}],"cwes":["CWE-434","CWE-79"],"updated_at":"2026-11-02T15:46:47.822182Z"},{"id":"BIT-ghost-2026-104411","title":"Ghost 6.22.1 before 6.64.0 Stored XSS via Local Storage File Uploads","description":"Ghost from 6.22.1 before 6.64.0 contains a stored cross-site scripting vulnerability that allows staff users to host scripts by uploading files served with extension-derived content types on the default local storage adapter. Attackers can upload script-bearing files to the site's domain to compromise other staff users' admin sessions.","status":"published","published":"2026-10-09T10:45:13.088Z","modified":"2026-10-13T08:26:00.402598962Z","updated_at":"2026-11-02T15:28:29.999658Z"},{"id":"BIT-ghost-2026-105679","title":"Ghost: Stored XSS via File Uploads on Local Storage","description":"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.","status":"published","published":"2026-10-13T06:50:31.151Z","modified":"2026-10-13T08:26:00.402598962Z","updated_at":"2026-11-02T15:28:29.999658Z"}]}}
