CVE-2026-105847

HIGH CVSS 4.0: 7.1 EPSS 0.24%
Updated Oct 15, 2026
Payload
Parameter Value
CVSS 7.1 (HIGH)
Affected Versions 3.0.0 — 3.90.0
Fixed In 3.90.0
Type CWE-200 (Information Exposure), CWE-639 (Authorization Bypass)
Vendor Payload
Public PoC No

Payload is a free and open source headless content management system. In versions from 3.0.0 before 3.90.0 and canary versions before 4.0.0-canary.34, a user who can query a collection with a polymorphic join to sensitive fields can infer hidden or read-restricted values, including password-reset tokens, through polymorphic join filters. This issue is fixed in versions 3.90.0 and 4.0.0-canary.34.

Attack Parameters

Attack Vector
Network
Can be exploited remotely
Attack Complexity
Low
Easy to exploit
Attack Requirements
None
No additional conditions
Privileges Required
Low
Basic privileges needed
User Interaction
None
No user interaction needed

Impact Assessment

Confidentiality
High
Complete data leak
Integrity
None
No data modification
Availability
None
No disruption

CVSS Vector v4.0

Vulnerable Products 35

Configuration From (including) Up to (excluding)
Payloadcms Payload
cpe:2.3:a:payloadcms:payload:*:*:*:*:*:node.js:*:*
3.0.0 3.90.0
Payloadcms Payload
cpe:2.3:a:payloadcms:payload:4.0.0:canary0:*:*:*:node.js:*:*
— —
Payloadcms Payload
cpe:2.3:a:payloadcms:payload:4.0.0:canary1:*:*:*:node.js:*:*
— —
Payloadcms Payload
cpe:2.3:a:payloadcms:payload:4.0.0:canary10:*:*:*:node.js:*:*
— —
Payloadcms Payload
cpe:2.3:a:payloadcms:payload:4.0.0:canary11:*:*:*:node.js:*:*
— —
Payloadcms Payload
cpe:2.3:a:payloadcms:payload:4.0.0:canary12:*:*:*:node.js:*:*
— —
Payloadcms Payload
cpe:2.3:a:payloadcms:payload:4.0.0:canary13:*:*:*:node.js:*:*
— —
Payloadcms Payload
cpe:2.3:a:payloadcms:payload:4.0.0:canary14:*:*:*:node.js:*:*
— —
Payloadcms Payload
cpe:2.3:a:payloadcms:payload:4.0.0:canary15:*:*:*:node.js:*:*
— —
Payloadcms Payload
cpe:2.3:a:payloadcms:payload:4.0.0:canary16:*:*:*:node.js:*:*
— —
Payloadcms Payload
cpe:2.3:a:payloadcms:payload:4.0.0:canary17:*:*:*:node.js:*:*
— —
Payloadcms Payload
cpe:2.3:a:payloadcms:payload:4.0.0:canary18:*:*:*:node.js:*:*
— —
Payloadcms Payload
cpe:2.3:a:payloadcms:payload:4.0.0:canary19:*:*:*:node.js:*:*
— —
Payloadcms Payload
cpe:2.3:a:payloadcms:payload:4.0.0:canary2:*:*:*:node.js:*:*
— —
Payloadcms Payload
cpe:2.3:a:payloadcms:payload:4.0.0:canary20:*:*:*:node.js:*:*
— —
Payloadcms Payload
cpe:2.3:a:payloadcms:payload:4.0.0:canary21:*:*:*:node.js:*:*
— —
Payloadcms Payload
cpe:2.3:a:payloadcms:payload:4.0.0:canary22:*:*:*:node.js:*:*
— —
Payloadcms Payload
cpe:2.3:a:payloadcms:payload:4.0.0:canary23:*:*:*:node.js:*:*
— —
Payloadcms Payload
cpe:2.3:a:payloadcms:payload:4.0.0:canary24:*:*:*:node.js:*:*
— —
Payloadcms Payload
cpe:2.3:a:payloadcms:payload:4.0.0:canary25:*:*:*:node.js:*:*
— —
Payloadcms Payload
cpe:2.3:a:payloadcms:payload:4.0.0:canary26:*:*:*:node.js:*:*
— —
Payloadcms Payload
cpe:2.3:a:payloadcms:payload:4.0.0:canary27:*:*:*:node.js:*:*
— —
Payloadcms Payload
cpe:2.3:a:payloadcms:payload:4.0.0:canary28:*:*:*:node.js:*:*
— —
Payloadcms Payload
cpe:2.3:a:payloadcms:payload:4.0.0:canary29:*:*:*:node.js:*:*
— —
Payloadcms Payload
cpe:2.3:a:payloadcms:payload:4.0.0:canary3:*:*:*:node.js:*:*
— —
Payloadcms Payload
cpe:2.3:a:payloadcms:payload:4.0.0:canary30:*:*:*:node.js:*:*
— —
Payloadcms Payload
cpe:2.3:a:payloadcms:payload:4.0.0:canary31:*:*:*:node.js:*:*
— —
Payloadcms Payload
cpe:2.3:a:payloadcms:payload:4.0.0:canary32:*:*:*:node.js:*:*
— —
Payloadcms Payload
cpe:2.3:a:payloadcms:payload:4.0.0:canary33:*:*:*:node.js:*:*
— —
Payloadcms Payload
cpe:2.3:a:payloadcms:payload:4.0.0:canary4:*:*:*:node.js:*:*
— —
Payloadcms Payload
cpe:2.3:a:payloadcms:payload:4.0.0:canary5:*:*:*:node.js:*:*
— —
Payloadcms Payload
cpe:2.3:a:payloadcms:payload:4.0.0:canary6:*:*:*:node.js:*:*
— —
Payloadcms Payload
cpe:2.3:a:payloadcms:payload:4.0.0:canary7:*:*:*:node.js:*:*
— —
Payloadcms Payload
cpe:2.3:a:payloadcms:payload:4.0.0:canary8:*:*:*:node.js:*:*
— —
Payloadcms Payload
cpe:2.3:a:payloadcms:payload:4.0.0:canary9:*:*:*:node.js:*:*
— —