Payload: Bypassed sanitization of user uploaded SVGs
What fixes it
- 3.90.0payload, npmGitHub
npm install payload@3.90.0 - 4.0.0-canary.34payload, npmGitHub
npm install payload@4.0.0-canary.34
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
Description
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.
Text from GitHub Advisory Database
Affected versions 6
- payload, npm< 3.90.0GitHub
- payload, npm>= 4.0.0-canary.0, < 4.0.0-canary.34GitHub
- payloadaffected: < 3.90.0CVE List
- payloadaffected: >= 4.0.0-canary.0, < 4.0.0-canary.34CVE List
- payload, npmfrom first release, fixed in 3.90.0OSV
- payload, npmfrom 4.0.0-canary.0, fixed in 4.0.0-canary.34OSV
References 5
- github.com/payloadcms/payload/commit/a8c3a8e8e2680c96ec4f66f5b3854c5df6c35adfFixvia CVE List
- github.com/payloadcms/payload/releases/tag/v3.90.0Fixvia CVE List
- github.com/payloadcms/payload/security/advisories/GHSA-2pwp-2369-8fg3Advisoryvia CVE List
- github.com/advisories/GHSA-2pwp-2369-8fg3Advisoryvia GitHub
- nvd.nist.gov/vuln/detail/CVE-2026-105862Referencevia GitHub