Skip to main content

Payload CMS CVE-2026-105862

| EUVDEUVD-2026-93508 HIGH
Cross-site Scripting (XSS) (CWE-79)
2026-10-06 GitHub_M GHSA-2pwp-2369-8fg3
8.7
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain authenticated upload access
  2. Delivery
    Store malicious SVG in collection
  3. Exploit
    Victim downloads and opens SVG
  4. Execution
    JavaScript executes in browser context
  5. Impact
    Hijack session and compromise account

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires a collection explicitly configured to allow downloadable SVG uploads (per the description), an attacker holding an authenticated account with upload privileges to that collection (CVSS PR:L), and a victim who subsequently downloads AND opens the stored SVG (CVSS UI:R) in a context where the embedded JavaScript executes. Limiting factors: it does not work against deployments that disallow SVG/XML uploads, it needs valid authenticated upload access rather than anonymous access, and it depends on victim action - a non-default upload configuration plus user interaction substantially narrow the realistic attack surface below what the 8.7 base score alone implies.

Impact

This is a stored cross-site scripting flaw (CWE-79) in Payload CMS with a vendor-provided CVSS 3.1 vector of CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N (8.7, High). The signals are moderate rather than extreme: AV:N and AC:L favor the attacker, but PR:L means the attacker must already hold a valid account with upload rights, and UI:R means a victim must download AND open the malicious SVG - both meaningfully constrain weaponization. No EPSS score was provided, the CVE is NOT in CISA KEV, and no public proof-of-concept is referenced, so the exploitation status is 'no public exploit identified at time of analysis.' The S:C (scope change) plus C:H/I:H reflects that attacker JavaScript executes in the victim's authenticated browser context, which in an admin CMS could escalate to account/session takeover - that is why the score lands high despite the interaction requirement. Net: this is a legitimate issue to patch for anyone running collections that accept SVG uploads, but it is not a drop-everything internet-wide emergency - it requires both an authenticated uploader and victim action, pointing to targeted/insider abuse rather than mass exploitation. The source-code diff (adding sax-based XML parsing, CSP headers for XML-family MIME types, and server-side upload validation) independently confirms the root cause is incomplete SVG/XML sanitization, corroborating the description.

Exploit ScenarioDerived

An attacker with a low-privileged account that can upload to a collection permitting downloadable SVGs stores an SVG containing embedded JavaScript that evades Payload's sanitization. When an administrator or another user later downloads and opens that SVG, the attacker's script executes in their browser context, enabling session/credential theft or actions on their behalf. No public exploit code is referenced, so exploitation would require an attacker to craft the bypass independently.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 06, 2026

Stored cross-site scripting in Payload CMS before 3.90.0 (and canary builds before 4.0.0-canary.34) lets an authenticated user with upload privileges plant a crafted SVG in any collection configured to accept downloadable SVG uploads; the file survives sanitization and executes attacker-controlled JavaScript when a victim downloads and opens it. The vendor rates it 8.7 High (CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N), reflecting the need for a valid upload account plus victim interaction, with scope change because the payload is delivered through the application's own storage and origin. No public exploit identified at time of analysis; the issue is fixed in 3.90.0 and 4.0.0-canary.34.

RemediationAI

Vendor-released patch: upgrade to Payload CMS 3.90.0 for the 3.x line or 4.0.0-canary.34 for canary 4.x; both incorporate the XML-family CSP enforcement and the SVG/XML client-upload rejection implemented in commit a8c3a8e8e2680c96ec4f66f5b3854c5df6c35adf, with details in advisory GHSA-2pwp-2369-8fg3 (https://github.com/payloadcms/payload/security/advisories/GHSA-2pwp-2369-8fg3) and release notes at https://github.com/payloadcms/payload/releases/tag/v3.90.0. If upgrading immediately is not possible, disable SVG/XML uploads on every collection that accepts user-supplied files by rejecting image/svg+xml and XML-family MIME types along with .svg/.xml extensions; the trade-off is loss of legitimate vector-graphic handling and breakage of existing asset workflows. Keep upload.allowRestrictedFileTypes unset or false so restricted types are forced through the server-validated upload path (setting it true restores the risky client-upload behavior described in the patch tests), and for self-hosted static file delivery ensure responses for image/svg+xml and all XML-family content types emit Content-Security-Policy: script-src 'none' - the pre-3.90.0 payload-cloud handler only matched the exact 'image/svg+xml' ContentType, so other XML MIME types passed through unprotected - while also serving uploads with Content-Disposition: attachment and, where feasible, from a separate cookieless origin or CDN, which requires extra DNS/CDN configuration and can change how legitimate SVG consumers render files. Note that because exploitation requires an authenticated upload account and a victim who downloads and opens the file, tightening upload permissions to trusted roles is a useful interim reduction of exposure rather than a fix.

Affected VersionsENISA

payload < 3.90.0
payload 4.0.0-canary.0, < 4.0.0-canary.34

Affected Packages

npm payload fix: 3.90.0, 4.0.0-canary.34
euvd payload_4_0_0_canary_0 fix: 4.0.0-canary.34

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in npm, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Payload CMS handles file uploads through configurable upload-enabled collections, and this flaw lives in how SVG and the broader XML family of file types are processed on ingestion and on retrieval. The root cause class is CWE-79 (improper neutralization of input during web page generation, i.e. cross-site scripting): a malicious SVG carrying script or event-handler content is stored intact rather than neutralized, so the stored artifact becomes an executable XSS vector instead of an inert image. The upstream fix (commit a8c3a8e8e2680c96ec4f66f5b3854c5df6c35adf) hardens both ends of the pipeline: it adds isSvgMimeType()/isXmlMimeType() helpers and a shared UPLOAD_CONTENT_SECURITY_POLICY constant so the payload-cloud static handler applies a strict CSP (script-src 'none') to all XML-family content types instead of only matching the literal 'image/svg+xml' ContentType as it did before, and it adds an assertClientUploadAllowed() gate that rejects filenames and MIME values identifying SVG/XML content - including case variants such as image.SVG, structured-suffix types such as application/xhtml+xml, declared MIME parameters, and sanitized trailing-dot filenames - unless the collection explicitly opts in via upload.allowRestrictedFileTypes. The patch also pulls in the sax XML parser (with @types/sax) and introduces a collection.upload.modifyResponseHeaders hook, indicating MIME/filename normalization plus response-header control are part of the defensive design. CPE data (cpe:2.3:a:payloadcms:payload:*:*:*:*:*:*:*:*) confirms the affected package is the core Payload CMS distribution rather than a third-party plugin.

Know when Payload gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 8.7 HIGH
AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N
vuln.today AI 8.7 HIGH

Attacker needs an authenticated upload account (PR:L) and a victim must open the SVG (UI:R); script runs in the victim's authenticated origin (S:C) enabling session/account compromise (C:H/I:H), with no availability impact.

3.1 AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:A/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
Required
Scope
Changed
Confidentiality
High
Integrity
High
Availability
None

Lifecycle Timeline

2
Patch available
Oct 06, 2026 - 18:19 EUVD
CVE Published
Oct 06, 2026 - 16:37 cve.org
HIGH 8.7

DescriptionCVE.org

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.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 2 npm packages depend on payload (2 direct, 0 indirect)

Ecosystem-wide dependent count for version 4.0.0-canary.0.

Technical POC Analysis

CWE-79 (Improper Neutralization of Input During Web Page Generation), with CWE-434 also assigned.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

A stored cross-site scripting flaw in Payload CMS allows anyone with an existing content-upload account to plant a malicious SVG file that survives the platform's sanitization and executes when a colleague downloads and opens it, running attacker code inside the organization's own trusted application origin. Because the payload is served from the CMS itself, victims and their browsers are far more likely to trust it, and the same session context can expose both sensitive content and data-modification capabilities. Leadership should care because the affected population is internal content teams, and any organization running Payload CMS with SVG uploads enabled has no vendor patch to deploy today.

Business Impact: High
Compensating Controls

Apply vendor patch. Until the upgrade to Payload CMS 3.90.0 (or 4.0.0-canary.34 for canary builds) is complete, interim mitigations include disabling SVG uploads or removing SVG from accepted downloadable file types, restricting upload privileges to a minimal trusted group, serving stored assets from a separate origin with attachment-only download headers and a strict content-security policy, shortening authenticated session lifetimes, and monitoring asset repositories for suspicious or newly injected SVG files.

Threat Intelligence Overview

EPSS Score
0.2%
Top 85% exploitable
Prevalence
Medium
popular open-source headless CMS, common in web stacks but not ubiquitous
Threat Intel
1
1 source
Social Media
2
Sightings
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

CVE-2022-27952 CRITICAL POC
9.8 Apr 12

An arbitrary file upload vulnerability in the file upload module of PayloadCMS v0.15.0 allows attackers to execute arbit

CVE-2026-105844 CRITICAL POC
9.3 Oct 06

Prototype pollution in Payload CMS's @payloadcms/plugin-import-export module lets an unauthenticated remote attacker sub

CVE-2026-105851 CRITICAL POC
9.3 Oct 06

Field-level access control can be bypassed in Payload CMS's document duplicate operation, letting a caller with access t

CVE-2026-105850 HIGH POC
8.8 Oct 06

Duplicate order processing in @payloadcms/plugin-ecommerce allows remote, unauthenticated attackers to have a single Str

CVE-2026-105854 HIGH POC
8.7 Oct 06

Malformed multipart request bodies sent to Payload CMS versions 3.0.0 through 3.89.x and 4.0.0-canary.0 through 4.0.0-ca

CVE-2026-105849 HIGH POC
7.7 Oct 06

API key disclosure in Payload CMS lets an authenticated user with ordinary read access to other users' authentication do

CVE-2026-105855 HIGH POC
7.6 Oct 06

Authenticated users who can update an auth collection document in Payload CMS can change the password field on that docu

CVE-2026-105852 MEDIUM POC
6.9 Oct 06

Payload CMS versions before 3.90.0 and canary versions before 4.0.0-canary.34 contain an authorization bypass in relatio

CVE-2026-105857 CRITICAL
10.0 Oct 06

Unauthorized read access to stored form submissions and form email configuration in Payload CMS deployments running the

CVE-2026-105859 CRITICAL
9.8 Oct 06

Payload CMS releases before 3.90.0 (and canary builds before 4.0.0-canary.34) expose an orderable reorder endpoint that

CVE-2026-25544 CRITICAL POC
9.8 Feb 06

Payload CMS prior to 3.73.0 has a SQL injection vulnerability when querying structured data, enabling database compromis

CVE-2026-105845 CRITICAL POC
9.8 Oct 06

SQL injection in Payload CMS 3.0.0 through before 3.88.0 (and 4.0.0-canary builds before 4.0.0-canary.27) allows remote

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy