Grav API Plugin: Stored XSS via SVG Upload - API Media Pipeline Bypasses Sanitizer
Default status is the baseline for the product, each version can override it (e.g. patched versions marked unaffected).
| Vendor | Product | Default status | Versions | ||||||
|---|---|---|---|---|---|---|---|---|---|
| getgrav | grav-plugin-api | affected |
|
No data.
No data.
| Vendor | Product | Versions | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Getgrav | Grav-plugin-api |
|
No CVSS v4.0
No CVSS v3.0
No CVSS v2
This CVE is not in the KEV list.
Exploit prediction score: < 1% (0.289% probability within 30 days)
| Type | Values Removed | Values Added |
|---|---|---|
| Metrics |
ssvc
|
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Getgrav
Getgrav grav-plugin-api |
|
| Vendors & Products |
Getgrav
Getgrav grav-plugin-api |
| Type | Values Removed | Values Added |
|---|---|---|
| Description | 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. | |
| Title | Grav API Plugin: Stored XSS via SVG Upload - API Media Pipeline Bypasses Sanitizer | |
| Weaknesses | CWE-79 | |
| References |
| |
| Metrics |
cvssV3_1
|