{"id":"CVE-2026-61607","summary":"Grav API Plugin: Stored XSS via SVG Upload - API Media Pipeline Bypasses Sanitizer","details":"Grav API Plugin is a RESTful API for Grav CMS that provides full headless access to your site's content. Prior to 1.0.2, the Grav API plugin POST /api/v1/media pipeline in HandlesMediaUploads::processUploadedFile() validates an SVG filename extension but does not invoke Security::sanitizeSVG(). An attacker with api.media.write permission can store an SVG containing JavaScript, and the server returns the file as Content-Type: image/svg+xml so the script executes when a victim opens it, allowing session data theft and authenticated actions. This issue is fixed in version 1.0.2.","aliases":["CVE-2026-61456","GHSA-7vhm-8x52-2r5p"],"modified":"2026-09-11T03:30:48.534711363Z","published":"2026-08-19T15:18:15.354Z","database_specific":{"cna_assigner":"GitHub_M","cwe_ids":["CWE-79"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/61xxx/CVE-2026-61607.json"},"references":[{"type":"WEB","url":"https://github.com/getgrav/grav-plugin-api/releases/tag/1.0.2"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/61xxx/CVE-2026-61607.json"},{"type":"ADVISORY","url":"https://github.com/getgrav/grav/security/advisories/GHSA-7vhm-8x52-2r5p"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-61607"},{"type":"FIX","url":"https://github.com/getgrav/grav-plugin-api/commit/d25eedb84a387f2c71b12a374f2a4b3d74339a7e"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/getgrav/grav-plugin-api","events":[{"introduced":"0"},{"fixed":"d25eedb84a387f2c71b12a374f2a4b3d74339a7e"},{"fixed":"971f92bf917863c190fefc3566f9d22e6222a6bd"}],"database_specific":{"extracted_events":[{"introduced":"0"},{"fixed":"1.0.2"}],"source":["AFFECTED_FIELD","REFERENCES"]}}],"versions":["1.0.1","1.0.0","1.0.0-rc.16","1.0.0-rc.15","1.0.0-rc.14","1.0.0-rc.13","1.0.0-rc.12","1.0.0-rc.11","1.0.0-rc.10","1.0.0-rc.9","1.0.0-rc.8","1.0.0-rc.7","1.0.0-rc.6","1.0.0-rc.5","1.0.0-rc.4","1.0.0-rc.3","1.0.0-rc.2","1.0.0-rc.1","1.0.0-beta.17","1.0.0-beta.16","1.0.0-beta.15","1.0.0-beta.14","1.0.0-beta.13","1.0.0-beta.12","1.0.0-beta.11","1.0.0-beta.10","1.0.0-beta.9","1.0.0-beta.8","1.0.0-beta.7","1.0.0-beta.6","1.0.0-beta.5","1.0.0-beta.4","1.0.0-beta.3","1.0.0-beta.2","1.0.0-beta.1"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-61607.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:L/I:L/A:N"}]}