CVE-2026-61456
published 2026-07-10CVE-2026-61456: The Grav API plugin (getgrav/grav-plugin-api) before 1.0.3 fails to sanitize SVG files uploaded through the POST /api/v1/media endpoint. The…
PriorityP429medium4.6CVSS 3.1
AVNACLPRLUIRSUCLILAN
EPSS
0.14%
3.9th percentile
The Grav API plugin (getgrav/grav-plugin-api) before 1.0.3 fails to sanitize SVG files uploaded through the POST /api/v1/media endpoint. The HandlesMediaUploads::processUploadedFile() method validates only the file extension and never invokes Security::sanitizeSVG(), so an authenticated attacker with the api.media.write permission can upload an SVG containing arbitrary JavaScript. The file is stored unmodified and served with Content-Type: image/svg+xml; when an administrator opens it in a browser (directly or via /), the embedded script executes in their session context, enabling cookie theft and session hijacking.
Affected
1 ranges
| Vendor | Product | Version range | Fixed in |
|---|---|---|---|
| getgrav | grav | < 1.0.3 | 1.0.3 |
CVSS provenance
nvdv3.14.6MEDIUMCVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:L/I:L/A:N
nvdv4.05.1MEDIUMCVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Stop checking back — get the weekly exploitation signal.
Every Monday: what got weaponized or added to CISA KEV in the last seven days — each CVE cross-linked to its PoC, Nuclei template, and detection rule. Free, one email a week, unsubscribe in one click.
GHSA
The Grav API plugin (getgrav/grav-plugin-api) before 1.0.3 fails to sanitize SVG files uploaded through the POST /api/v1/media endpoint.
ghsa_unreviewed·2026-07-10
CVE-2026-61456 [MEDIUM] CWE-79 The Grav API plugin (getgrav/grav-plugin-api) before 1.0.3 fails to sanitize SVG files uploaded through the POST /api/v1/media endpoint.
The Grav API plugin (getgrav/grav-plugin-api) before 1.0.3 fails to sanitize SVG files uploaded through the POST /api/v1/media endpoint. The HandlesMediaUploads::processUploadedFile() method validates only the file extension and never invokes Security::sanitizeSVG(), so an authenticated attacker with the api.media.write permission can upload an SVG containing arbitrary JavaScript. The file is stored unmodified and served with Content-Type: image/svg+xml; when an administrator opens it in a browser (directly or via /), the embedded script executes in their session context, enabling cookie theft and session hijacking.
VulDB
getgrav Grav up to 1.0.2 SVG File /api/v1/media processUploadedFile unrestricted upload (EUVD-2026-42905)
vuldb·2026-07-10·CVSS 4.6
CVE-2026-61456 [MEDIUM] getgrav Grav up to 1.0.2 SVG File /api/v1/media processUploadedFile unrestricted upload (EUVD-2026-42905)
A vulnerability was found in getgrav Grav up to 1.0.2 and classified as critical. This affects the function HandlesMediaUploads::processUploadedFile of the file /api/v1/media of the component SVG File Handler. Such manipulation leads to unrestricted upload.
This vulnerability is listed as CVE-2026-61456. The attack may be performed from remote. There is no available exploit.
No detection rules found.
No public exploits indexed.
No writeups or analysis indexed.
2026-07-10
Published