Payload CMS: Stored XSS via downloaded SVG uploads
Summary
Payload CMS stores uploaded SVG files that bypass sanitization, so a malicious SVG can contain attacker-controlled JavaScript. The script runs in the browser of a user who downloads and opens the file. An attacker needs an account with upload rights, and the victim must open the file; confidentiality and integrity are affected, availability is not.
Affected
- Payload versions before 3.90.0
- Payload canary versions from 4.0.0-canary.0 before 4.0.0-canary.34
- Only collections that allow SVG uploads which users can download are affected
- Older release lines (2.x): Unknown.
Fixed in
- Payload 3.90.0
- Payload 4.0.0-canary.34
- Later releases also contain the fix (Unknown which exact versions the vendor lists as current).
Workaround
- Disallow SVG uploads in affected collections.
- Serve uploaded SVGs only as downloads with Content-Disposition: attachment and a strict Content-Security-Policy.
- These measures reduce exposure but do not replace the upgrade.
Exploitation
- CISA KEV: not listed.
- No public proof of concept or known exploitation found at the time of research.
- CISA SSVC: Exploitation none, Automatable no, Technical Impact total.
Our recommendation
- Inventory all Payload installations and identify their versions, including transitive dependencies.
- Upgrade to Payload 3.90.0 or later, or 4.0.0-canary.34 or later, after testing.
- Until patched, block or restrict SVG uploads and serve uploads as attachments with a strict CSP.
- Review existing uploaded SVG files for script content and check whether upload collections are publicly downloadable.
Public exploits
PoC-in-GitHub, Metasploit and Exploit-DB list nothing for this CVE.
Research sources
- GitHub Security Advisory GHSA-2pwp-2369-8fg3 github.com
- Payload release v3.90.0 github.com
- Fix commit a8c3a8e github.com
- OSV: CVE-2026-105862 osv.dev
- OSV: GHSA-2pwp-2369-8fg3 osv.dev
- OpenCVE: CVE-2026-105862 app.opencve.io
Researched and written up in English and German by an AI (Claude by Anthropic) based on NVD, CISA, EPSS and the sources listed. The vendor information is authoritative. Researched on 1 Nov 2026, 05:31.
Original description (NVD)
Payload is a free and open source headless content management system. In versions before 3.90.0 and canary versions before 4.0.0-canary.34, a collection that allows downloadable SVG uploads can store a malicious SVG that bypasses sanitization and executes attacker-controlled JavaScript when a user downloads and opens the SVG. This issue is fixed in versions 3.90.0 and 4.0.0-canary.34.
Sources
The tracker combines official, freely usable data sources – updated continuously:
- NVD (NIST) – CVEs, rating (CVSS), affected products
- CISA KEV – vulnerabilities confirmed by CISA as actively exploited
- CISA Vulnrichment – CISA assessment (SSVC) in the official CVE record
- FIRST EPSS – probability of exploitation
- Microsoft MSRC – Patch Tuesday: vulnerabilities, severity, updates
- PoC-in-GitHub – public proof-of-concept repositories
- Metasploit (Rapid7) – modules of the Metasploit Framework
- Exploit-DB (OffSec) – archive of public exploits (links only)
- Patch days: official vendor pages (linked per vendor) (Vendor patch days)
This product uses data from the NVD API but is not endorsed or certified by the NVD. EPSS data © FIRST.org.
Affected? We can help.
We check whether your systems are affected, install updates and close the gap – continuously with the System Health Checker if you wish.
