Payload: Bypassed sanitization of user uploaded SVGs
Collected exploitation and prediction evidence
Risk source coverageCISA KEV is observed exploitation evidence. FIRST EPSS is a dated prediction of exploitation in the next 30 days. Missing scores are unknown. This collector requests predictions only for explicit CVE aliases in the public NuGet archive; Microsoft release views retain their existing prediction scope.
No collected risk observation for these identifiers. This does not establish absence of exploitation or a zero probability.
cve-program · CVE-2026-105862
PublishedPayload 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.
- Source published
- 6 Oct 2026 16:37:59 UTC
- Source modified
- 6 Oct 2026 17:24:09 UTC
- Observed here
- 23 Oct 2026 15:48:27 UTC
- Source terms
- CVE Program Terms of Use
Original source record · Cite this exact observation · Complete original publisher JSON
This view projects the publisher's source fields for reading; the original JSON retains additional fields and CVE enrichment containers. Attribution: cve-program · CVE Program Terms of Use. Source text is retained; field grouping and change labels are provided by ChangeIntel.
CVSS 3.1 · 8.7 CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N
euvd · EUVD-2026-93508
PublishedPayload 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.
EUVD source date text has no stated timezone and is retained without inventing a UTC instant. Related bulletin membership is not an alias, common cause or applicability claim. A missing vector with a zero score is treated as unrated. Complete vendor/product and underlying source evidence remains in the original JSON.
Original publisher date fields
datePublished: Oct 6, 2026, 4:37:59 PM
dateUpdated: Oct 6, 2026, 5:24:09 PM
- Source published
- Oct 6, 2026, 4:37:59 PM (timezone not stated)
- Source modified
- Oct 6, 2026, 5:24:09 PM (timezone not stated)
- Observed here
- 9 Nov 2026 05:05:59 UTC
- Source terms
- ENISA EUVD · source terms and attribution apply
Original source record · Cite this exact observation · Complete original publisher JSON
This view projects the publisher's source fields for reading; the original JSON retains additional fields and CVE enrichment containers. Attribution: euvd · ENISA EUVD · source terms and attribution apply. Source text is retained; field grouping and change labels are provided by ChangeIntel.
EUVD CVSS 3.1 · 8.7 CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N
nvd · CVE-2026-105862
PublishedPayload 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.
NVD analysis and CPE criteria are source context, not proof that a package or your environment is affected. Complete affected data, logical configurations and SSVC are retained in the original JSON.
Source analysis status: Analyzed
Weakness classifications: CWE-79 · CWE-434
Original publisher date fields
published: 2026-10-06T17:17:22.423
lastModified: 2026-10-15T00:09:17.103
35 source CPE criteria · context only
- cpe:2.3:a:payloadcms:payload:*:*:*:*:*:node.js:*:*
- cpe:2.3:a:payloadcms:payload:4.0.0:canary0:*:*:*:node.js:*:*
- cpe:2.3:a:payloadcms:payload:4.0.0:canary1:*:*:*:node.js:*:*
- cpe:2.3:a:payloadcms:payload:4.0.0:canary10:*:*:*:node.js:*:*
- cpe:2.3:a:payloadcms:payload:4.0.0:canary11:*:*:*:node.js:*:*
- cpe:2.3:a:payloadcms:payload:4.0.0:canary12:*:*:*:node.js:*:*
- cpe:2.3:a:payloadcms:payload:4.0.0:canary13:*:*:*:node.js:*:*
- cpe:2.3:a:payloadcms:payload:4.0.0:canary14:*:*:*:node.js:*:*
- cpe:2.3:a:payloadcms:payload:4.0.0:canary15:*:*:*:node.js:*:*
- cpe:2.3:a:payloadcms:payload:4.0.0:canary16:*:*:*:node.js:*:*
- cpe:2.3:a:payloadcms:payload:4.0.0:canary17:*:*:*:node.js:*:*
- cpe:2.3:a:payloadcms:payload:4.0.0:canary18:*:*:*:node.js:*:*
- cpe:2.3:a:payloadcms:payload:4.0.0:canary19:*:*:*:node.js:*:*
- cpe:2.3:a:payloadcms:payload:4.0.0:canary2:*:*:*:node.js:*:*
- cpe:2.3:a:payloadcms:payload:4.0.0:canary20:*:*:*:node.js:*:*
- cpe:2.3:a:payloadcms:payload:4.0.0:canary21:*:*:*:node.js:*:*
- cpe:2.3:a:payloadcms:payload:4.0.0:canary22:*:*:*:node.js:*:*
- cpe:2.3:a:payloadcms:payload:4.0.0:canary23:*:*:*:node.js:*:*
- cpe:2.3:a:payloadcms:payload:4.0.0:canary24:*:*:*:node.js:*:*
- cpe:2.3:a:payloadcms:payload:4.0.0:canary25:*:*:*:node.js:*:*
- cpe:2.3:a:payloadcms:payload:4.0.0:canary26:*:*:*:node.js:*:*
- cpe:2.3:a:payloadcms:payload:4.0.0:canary27:*:*:*:node.js:*:*
- cpe:2.3:a:payloadcms:payload:4.0.0:canary28:*:*:*:node.js:*:*
- cpe:2.3:a:payloadcms:payload:4.0.0:canary29:*:*:*:node.js:*:*
- cpe:2.3:a:payloadcms:payload:4.0.0:canary3:*:*:*:node.js:*:*
- cpe:2.3:a:payloadcms:payload:4.0.0:canary30:*:*:*:node.js:*:*
- cpe:2.3:a:payloadcms:payload:4.0.0:canary31:*:*:*:node.js:*:*
- cpe:2.3:a:payloadcms:payload:4.0.0:canary32:*:*:*:node.js:*:*
- cpe:2.3:a:payloadcms:payload:4.0.0:canary33:*:*:*:node.js:*:*
- cpe:2.3:a:payloadcms:payload:4.0.0:canary4:*:*:*:node.js:*:*
- cpe:2.3:a:payloadcms:payload:4.0.0:canary5:*:*:*:node.js:*:*
- cpe:2.3:a:payloadcms:payload:4.0.0:canary6:*:*:*:node.js:*:*
- cpe:2.3:a:payloadcms:payload:4.0.0:canary7:*:*:*:node.js:*:*
- cpe:2.3:a:payloadcms:payload:4.0.0:canary8:*:*:*:node.js:*:*
- cpe:2.3:a:payloadcms:payload:4.0.0:canary9:*:*:*:node.js:*:*
The original JSON retains the logical configuration operators, exclusions and version bounds.
- Source published
- 6 Oct 2026 17:17:22 UTC
- Source modified
- 15 Oct 2026 00:09:17 UTC
- Observed here
- 25 Oct 2026 04:17:41 UTC
- Source terms
- NIST NVD usage terms; underlying source attribution retained
Original source record · Cite this exact observation · Complete original publisher JSON
This view projects the publisher's source fields for reading; the original JSON retains additional fields and CVE enrichment containers. Attribution: nvd · NIST NVD usage terms; underlying source attribution retained. Source text is retained; field grouping and change labels are provided by ChangeIntel.
CVSS 3.1 · [email protected] · Secondary · 8.7 CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N
osv · GHSA-2pwp-2369-8fg3
Published## 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.
- Source published
- 7 Oct 2026 20:29:36 UTC
- Source modified
- 7 Oct 2026 20:45:04 UTC
- Observed here
- 24 Oct 2026 13:17:17 UTC
- Source terms
- GitHub Advisory Database · CC-BY-4.0
Original source record · Cite this exact observation · Complete original publisher JSON
This view projects the publisher's source fields for reading; the original JSON retains additional fields and CVE enrichment containers. Attribution: osv · GitHub Advisory Database · CC-BY-4.0. Source text is retained; field grouping and change labels are provided by ChangeIntel.
CVSS_V3 · CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N
Publisher rating · HIGH