Summary
Payload: Bypassed sanitization of user uploaded SVGs
Advisory details
Impact
A malicious SVG file upload could bypass sanitization, be stored, and execute attacker-controlled JavaScript (XSS) after a user downloads it and opens it.
You are affected if:
- You have a collection configured to upload and allow SVG files which can then be downloaded by users.
Patches
The fix validates SVG content on every upload path and hardens SVG/XML delivery so stored SVGs cannot frame attacker content.
Users should upgrade Payload packages to >= 3.90.0 or >= 4.0.0-canary.34.
Workarounds
Disallow SVG uploads, or serve uploaded SVGs as downloads with Content-Disposition: attachment and a strict CSP. These mitigations reduce exposure but do not replace upgrading when the patched release is available.
References
- https://github.com/advisories/GHSA-2pwp-2369-8fg3
- https://github.com/payloadcms/payload/security/advisories/GHSA-2pwp-2369-8fg3
- https://nvd.nist.gov/vuln/detail/CVE-2026-105862
- https://github.com/payloadcms/payload/commit/a8c3a8e8e2680c96ec4f66f5b3854c5df6c35adf
- https://github.com/payloadcms/payload/releases/tag/v3.90.0
Related vulnerabilities
All Supply chain →- MEDIUMCVE-2026-105644
Ghost : Stored XSS via SVG Files in Content Imports
- HIGHCVE-2026-105649
Ghost: Stored XSS via SVG Uploads Bypassing Sanitization
- HIGHCVE-2026-105651
Ghost: Stored XSS via Bookmark Card Images
- HIGHCVE-2026-105679
Ghost: Stored XSS via File Uploads on Local Storage
- CRITICALCVE-2026-102989
TanStack Router: Unauthenticated reflected XSS in TanStack Start server-function responses
- CRITICALCVE-2026-104252
Vitess vttablet /twopcz reflected XSS