CyberRota Analysis
AI-GeneratedThe Grav API plugin prior to version 1.0.3 is vulnerable due to inadequate sanitization of SVG files uploaded via the media endpoint, allowing authenticated attackers with the appropriate permissions to upload malicious SVGs containing arbitrary JavaScript. This flaw can lead to severe consequences, including cookie theft and session hijacking when an administrator views the compromised SVG. Organizations using this plugin should prioritize patching to mitigate the risk of exploitation.
Public Exploit Signal
A public exploit, PoC, GitHub repository or Metasploit reference was detected for this CVE.
Note: these links are listed for security research and verification purposes only.
Original NVD Description
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 <object>/<iframe>), the embedded script executes in their session context, enabling cookie theft and session hijacking.