{"answers":{"affected":"3 open source packages ship an affected version, including ghost.","exploited":"There is no known exploitation of CVE-2026-53948 in the wild and no public exploit code.","fix":"Upgrade ghost to 6.21.1 or later.","what":"CVE-2026-53948 is a medium-severity vulnerability in TryGhost Ghost, published on 24 Jun 2026. Any signed-in user can exploit it over the network, and only if a user opens a file or follows a link."},"fix_prompt":"Check this codebase for CVE-2026-53948 and fix it if it is affected.\n\nWhat it is: CVE-2026-53948 is a medium-severity vulnerability in TryGhost Ghost, published on 24 Jun 2026. Any signed-in user can exploit it over the network, and only if a user opens a file or follows a link.\nExploitation: There is no known exploitation of CVE-2026-53948 in the wild and no public exploit code.\n\nAffected packages and fixed versions:\n- ghost (Bitnami): affected from 6.19.4; fixed in 6.21.1\n- ghost (npm): affected from 6.19.4; fixed in 6.21.1\n- ghost (npm): affected from 6.19.4; fixed in 6.21.1\n\nTask:\n1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.\n2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.\n3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.\n4. Run the tests and summarise what changed and why.\n5. If nothing in the project is affected, say so and change nothing.\n\nReference: https://insights.sbomify.com/CVE-2026-53948/ (Markdown: https://insights.sbomify.com/CVE-2026-53948/index.md)","id":"CVE-2026-53948","markdown":"https://insights.sbomify.com/CVE-2026-53948/index.md","name":"CVE-2026-53948","record":{"aliases":["BIT-ghost-2026-53948","GHSA-944x-pm95-3jpr"],"analysis":{"component_type":"cms_plugin","fix_type":"upgrade","impacts":["code_execution","security_bypass"],"network_reachable":"yes","non_default_config":true,"product_category":"Ghost CMS","requires_auth":"low_privilege","summary":"Attackers can upload files with spoofed Content-Types to trigger stored XSS on Ghost CMS installations using S3/GCS backends.","user_interaction":"required","vuln_class":"file_upload"},"analysis_generated_by":"qwen3.8-flash-next","assigner":"GitHub_M","cpe":[],"cvss":{"score":5.4,"severity":"medium","source":"cna","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N","version":"3.1"},"cwes":[{"id":"CWE-434","name":"Unrestricted Upload of File with Dangerous Type"}],"description":"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.","ecosystems":["Bitnami","npm"],"exploits":{"exploitdb":0,"first_seen":null,"github_poc":0,"max_poc_stars":null,"metasploit":0,"nuclei":0,"refs":[],"tier":"none_known"},"has_fix":true,"headline":"Ghost: File Upload Content-Type Spoofing","id":"CVE-2026-53948","indexable":true,"kev":null,"kind":"cve","links":{"ecosystem":"Bitnami","product":null,"products":[],"type":"file_upload","year":"2026"},"n_packages":3,"n_references":1,"next":{"headline":"Ghost Content API filter bypass reveals private fields","id":"CVE-2026-53949"},"packages":[{"ecosystem":"Bitnami","fixed":["6.21.1"],"introduced":["6.19.4"],"last_affected":[],"package":"ghost","purl":"pkg:bitnami/ghost","source":"BIT-ghost-2026-53948"},{"ecosystem":"npm","fixed":["6.21.1"],"introduced":["6.19.4"],"last_affected":[],"package":"ghost","purl":null,"source":"GHSA-944x-pm95-3jpr"},{"ecosystem":"npm","fixed":["6.21.1"],"introduced":["6.19.4"],"last_affected":[],"package":"ghost","purl":"pkg:npm/ghost","source":"GHSA-944x-pm95-3jpr"}],"prev":{"headline":"Ghost: Member existence leak via magic link sign-in response","id":"CVE-2026-53947"},"products":["Ghost"],"published":"2026-06-24","related":[],"sources":[{"class":"attribution","licence":"Apache-2.0","name":"Bitnami","prefix":"BIT"},{"class":"attribution","licence":"CVE Terms of Use (MITRE)","name":"CVE List","prefix":"CVE"},{"class":"attribution","licence":"CC BY 4.0","name":"GitHub Advisory Database","prefix":"GHSA"},{"class":"attribution","licence":"CWE Terms of Use","name":"CWE (MITRE)"},{"class":"attribution","licence":"FIRST CVSS licence","name":"CVSS (FIRST)"}],"ssvc":{"automatable":"no","exploitation":"none","technical_impact":"partial"},"state":"PUBLISHED","updated":"2026-06-25","vendors":["TryGhost"]},"summary":"Attackers can upload files with spoofed Content-Types to trigger stored XSS on Ghost CMS installations using S3/GCS backends.","url":"https://insights.sbomify.com/CVE-2026-53948/"}