Field access control bypass in Payload duplicate operation
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Attack requirements
- None
- Impact type
- Security bypass
- Confidentiality · integrity · availability
- None · High · None
- Fix status
- No fix listed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA. Impact type from CWE-284.
Summary
Payload, a headless content management system, is affected in versions from 3.0.0 before 3.90.0 and in canary versions before 4.0.0-canary.34. The duplicate operation copies values from a source document even when a field is hidden or when its access.read or access.create rule rejects that value for the caller (CWE-284). An unauthenticated remote attacker can change protected field values without user interaction. The disableDuplicate setting does not prevent this access control bypass.
Written with Claude Haiku 5.5 from the sources below · 2026-10-29
Description from the CNA
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, the duplicate operation copies values from a source document even when a field is hidden or its access.read or access.create rule rejects that value for the caller. The disableDuplicate setting does not prevent this access-control bypass. This issue is fixed in versions 3.90.0 and 4.0.0-canary.34.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- Yes
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| payloadcms | payload | > 3.0.0, < 3.90.0; > 4.0.0-canary.0, < 4.0.0-canary.34 | — | No fix listed | CNA |
- payload Vendorpayloadcms Affected > 3.0.0, < 3.90.0; > 4.0.0-canary.0, < 4.0.0-canary.34 Fixed in — No fix listed CNA
CPE configurations NVD · 35
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:payloadcms:payload:*:*:*:*:*:node.js:*:* | 3.0.0 to before 3.90.0 | Vulnerable | payloadcms |
| cpe:2.3:a:payloadcms:payload:4.0.0:canary0:*:*:*:node.js:*:* | 4.0.0 canary0 | Vulnerable | payloadcms |
| cpe:2.3:a:payloadcms:payload:4.0.0:canary1:*:*:*:node.js:*:* | 4.0.0 canary1 | Vulnerable | payloadcms |
| cpe:2.3:a:payloadcms:payload:4.0.0:canary10:*:*:*:node.js:*:* | 4.0.0 canary10 | Vulnerable | payloadcms |
| cpe:2.3:a:payloadcms:payload:4.0.0:canary11:*:*:*:node.js:*:* | 4.0.0 canary11 | Vulnerable | payloadcms |
| cpe:2.3:a:payloadcms:payload:4.0.0:canary12:*:*:*:node.js:*:* | 4.0.0 canary12 | Vulnerable | payloadcms |
| cpe:2.3:a:payloadcms:payload:4.0.0:canary13:*:*:*:node.js:*:* | 4.0.0 canary13 | Vulnerable | payloadcms |
| cpe:2.3:a:payloadcms:payload:4.0.0:canary14:*:*:*:node.js:*:* | 4.0.0 canary14 | Vulnerable | payloadcms |
| cpe:2.3:a:payloadcms:payload:4.0.0:canary15:*:*:*:node.js:*:* | 4.0.0 canary15 | Vulnerable | payloadcms |
| cpe:2.3:a:payloadcms:payload:4.0.0:canary16:*:*:*:node.js:*:* | 4.0.0 canary16 | Vulnerable | payloadcms |
- cpe:2.3:a:payloadcms:payload:*:*:*:*:*:node.js:*:* Versions 3.0.0 to before 3.90.0 Vulnerable ·payloadcms
- cpe:2.3:a:payloadcms:payload:4.0.0:canary0:*:*:*:node.js:*:* Versions 4.0.0 canary0 Vulnerable ·payloadcms
- cpe:2.3:a:payloadcms:payload:4.0.0:canary1:*:*:*:node.js:*:* Versions 4.0.0 canary1 Vulnerable ·payloadcms
- cpe:2.3:a:payloadcms:payload:4.0.0:canary10:*:*:*:node.js:*:* Versions 4.0.0 canary10 Vulnerable ·payloadcms
- cpe:2.3:a:payloadcms:payload:4.0.0:canary11:*:*:*:node.js:*:* Versions 4.0.0 canary11 Vulnerable ·payloadcms
- cpe:2.3:a:payloadcms:payload:4.0.0:canary12:*:*:*:node.js:*:* Versions 4.0.0 canary12 Vulnerable ·payloadcms
- cpe:2.3:a:payloadcms:payload:4.0.0:canary13:*:*:*:node.js:*:* Versions 4.0.0 canary13 Vulnerable ·payloadcms
- cpe:2.3:a:payloadcms:payload:4.0.0:canary14:*:*:*:node.js:*:* Versions 4.0.0 canary14 Vulnerable ·payloadcms
- cpe:2.3:a:payloadcms:payload:4.0.0:canary15:*:*:*:node.js:*:* Versions 4.0.0 canary15 Vulnerable ·payloadcms
- cpe:2.3:a:payloadcms:payload:4.0.0:canary16:*:*:*:node.js:*:* Versions 4.0.0 canary16 Vulnerable ·payloadcms
Show 25 more CPE
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:payloadcms:payload:4.0.0:canary17:*:*:*:node.js:*:* | 4.0.0 canary17 | Vulnerable | payloadcms |
| cpe:2.3:a:payloadcms:payload:4.0.0:canary18:*:*:*:node.js:*:* | 4.0.0 canary18 | Vulnerable | payloadcms |
| cpe:2.3:a:payloadcms:payload:4.0.0:canary19:*:*:*:node.js:*:* | 4.0.0 canary19 | Vulnerable | payloadcms |
| cpe:2.3:a:payloadcms:payload:4.0.0:canary2:*:*:*:node.js:*:* | 4.0.0 canary2 | Vulnerable | payloadcms |
| cpe:2.3:a:payloadcms:payload:4.0.0:canary20:*:*:*:node.js:*:* | 4.0.0 canary20 | Vulnerable | payloadcms |
| cpe:2.3:a:payloadcms:payload:4.0.0:canary21:*:*:*:node.js:*:* | 4.0.0 canary21 | Vulnerable | payloadcms |
| cpe:2.3:a:payloadcms:payload:4.0.0:canary22:*:*:*:node.js:*:* | 4.0.0 canary22 | Vulnerable | payloadcms |
| cpe:2.3:a:payloadcms:payload:4.0.0:canary23:*:*:*:node.js:*:* | 4.0.0 canary23 | Vulnerable | payloadcms |
| cpe:2.3:a:payloadcms:payload:4.0.0:canary24:*:*:*:node.js:*:* | 4.0.0 canary24 | Vulnerable | payloadcms |
| cpe:2.3:a:payloadcms:payload:4.0.0:canary25:*:*:*:node.js:*:* | 4.0.0 canary25 | Vulnerable | payloadcms |
| cpe:2.3:a:payloadcms:payload:4.0.0:canary26:*:*:*:node.js:*:* | 4.0.0 canary26 | Vulnerable | payloadcms |
| cpe:2.3:a:payloadcms:payload:4.0.0:canary27:*:*:*:node.js:*:* | 4.0.0 canary27 | Vulnerable | payloadcms |
| cpe:2.3:a:payloadcms:payload:4.0.0:canary28:*:*:*:node.js:*:* | 4.0.0 canary28 | Vulnerable | payloadcms |
| cpe:2.3:a:payloadcms:payload:4.0.0:canary29:*:*:*:node.js:*:* | 4.0.0 canary29 | Vulnerable | payloadcms |
| cpe:2.3:a:payloadcms:payload:4.0.0:canary3:*:*:*:node.js:*:* | 4.0.0 canary3 | Vulnerable | payloadcms |
| cpe:2.3:a:payloadcms:payload:4.0.0:canary30:*:*:*:node.js:*:* | 4.0.0 canary30 | Vulnerable | payloadcms |
| cpe:2.3:a:payloadcms:payload:4.0.0:canary31:*:*:*:node.js:*:* | 4.0.0 canary31 | Vulnerable | payloadcms |
| cpe:2.3:a:payloadcms:payload:4.0.0:canary32:*:*:*:node.js:*:* | 4.0.0 canary32 | Vulnerable | payloadcms |
| cpe:2.3:a:payloadcms:payload:4.0.0:canary33:*:*:*:node.js:*:* | 4.0.0 canary33 | Vulnerable | payloadcms |
| cpe:2.3:a:payloadcms:payload:4.0.0:canary4:*:*:*:node.js:*:* | 4.0.0 canary4 | Vulnerable | payloadcms |
| cpe:2.3:a:payloadcms:payload:4.0.0:canary5:*:*:*:node.js:*:* | 4.0.0 canary5 | Vulnerable | payloadcms |
| cpe:2.3:a:payloadcms:payload:4.0.0:canary6:*:*:*:node.js:*:* | 4.0.0 canary6 | Vulnerable | payloadcms |
| cpe:2.3:a:payloadcms:payload:4.0.0:canary7:*:*:*:node.js:*:* | 4.0.0 canary7 | Vulnerable | payloadcms |
| cpe:2.3:a:payloadcms:payload:4.0.0:canary8:*:*:*:node.js:*:* | 4.0.0 canary8 | Vulnerable | payloadcms |
| cpe:2.3:a:payloadcms:payload:4.0.0:canary9:*:*:*:node.js:*:* | 4.0.0 canary9 | Vulnerable | payloadcms |
- cpe:2.3:a:payloadcms:payload:4.0.0:canary17:*:*:*:node.js:*:* Versions 4.0.0 canary17 Vulnerable ·payloadcms
- cpe:2.3:a:payloadcms:payload:4.0.0:canary18:*:*:*:node.js:*:* Versions 4.0.0 canary18 Vulnerable ·payloadcms
- cpe:2.3:a:payloadcms:payload:4.0.0:canary19:*:*:*:node.js:*:* Versions 4.0.0 canary19 Vulnerable ·payloadcms
- cpe:2.3:a:payloadcms:payload:4.0.0:canary2:*:*:*:node.js:*:* Versions 4.0.0 canary2 Vulnerable ·payloadcms
- cpe:2.3:a:payloadcms:payload:4.0.0:canary20:*:*:*:node.js:*:* Versions 4.0.0 canary20 Vulnerable ·payloadcms
- cpe:2.3:a:payloadcms:payload:4.0.0:canary21:*:*:*:node.js:*:* Versions 4.0.0 canary21 Vulnerable ·payloadcms
- cpe:2.3:a:payloadcms:payload:4.0.0:canary22:*:*:*:node.js:*:* Versions 4.0.0 canary22 Vulnerable ·payloadcms
- cpe:2.3:a:payloadcms:payload:4.0.0:canary23:*:*:*:node.js:*:* Versions 4.0.0 canary23 Vulnerable ·payloadcms
- cpe:2.3:a:payloadcms:payload:4.0.0:canary24:*:*:*:node.js:*:* Versions 4.0.0 canary24 Vulnerable ·payloadcms
- cpe:2.3:a:payloadcms:payload:4.0.0:canary25:*:*:*:node.js:*:* Versions 4.0.0 canary25 Vulnerable ·payloadcms
- cpe:2.3:a:payloadcms:payload:4.0.0:canary26:*:*:*:node.js:*:* Versions 4.0.0 canary26 Vulnerable ·payloadcms
- cpe:2.3:a:payloadcms:payload:4.0.0:canary27:*:*:*:node.js:*:* Versions 4.0.0 canary27 Vulnerable ·payloadcms
- cpe:2.3:a:payloadcms:payload:4.0.0:canary28:*:*:*:node.js:*:* Versions 4.0.0 canary28 Vulnerable ·payloadcms
- cpe:2.3:a:payloadcms:payload:4.0.0:canary29:*:*:*:node.js:*:* Versions 4.0.0 canary29 Vulnerable ·payloadcms
- cpe:2.3:a:payloadcms:payload:4.0.0:canary3:*:*:*:node.js:*:* Versions 4.0.0 canary3 Vulnerable ·payloadcms
- cpe:2.3:a:payloadcms:payload:4.0.0:canary30:*:*:*:node.js:*:* Versions 4.0.0 canary30 Vulnerable ·payloadcms
- cpe:2.3:a:payloadcms:payload:4.0.0:canary31:*:*:*:node.js:*:* Versions 4.0.0 canary31 Vulnerable ·payloadcms
- cpe:2.3:a:payloadcms:payload:4.0.0:canary32:*:*:*:node.js:*:* Versions 4.0.0 canary32 Vulnerable ·payloadcms
- cpe:2.3:a:payloadcms:payload:4.0.0:canary33:*:*:*:node.js:*:* Versions 4.0.0 canary33 Vulnerable ·payloadcms
- cpe:2.3:a:payloadcms:payload:4.0.0:canary4:*:*:*:node.js:*:* Versions 4.0.0 canary4 Vulnerable ·payloadcms
- cpe:2.3:a:payloadcms:payload:4.0.0:canary5:*:*:*:node.js:*:* Versions 4.0.0 canary5 Vulnerable ·payloadcms
- cpe:2.3:a:payloadcms:payload:4.0.0:canary6:*:*:*:node.js:*:* Versions 4.0.0 canary6 Vulnerable ·payloadcms
- cpe:2.3:a:payloadcms:payload:4.0.0:canary7:*:*:*:node.js:*:* Versions 4.0.0 canary7 Vulnerable ·payloadcms
- cpe:2.3:a:payloadcms:payload:4.0.0:canary8:*:*:*:node.js:*:* Versions 4.0.0 canary8 Vulnerable ·payloadcms
- cpe:2.3:a:payloadcms:payload:4.0.0:canary9:*:*:*:node.js:*:* Versions 4.0.0 canary9 Vulnerable ·payloadcms
Remediation
Upgrade Payload to version 3.90.0 for the 3.x line and to 4.0.0-canary.34 for the canary line, which the source description names as the fixed versions.
Written with Claude Haiku 5.5 from the sources below · 2026-10-29
Timeline
- 2026-10-06 Threatist record created from CVE-2026-105851
- 2026-10-06 CISA SSVC decision points changed
- 2026-10-15 CVSS score added · NVD
References
More payloadcms Payload vulnerabilities
- TI-2026-20653 Payload has an SQL Injection in JSON/RichText Queries on PostgreSQL/SQLite Adapters CVSS 3.1CRITICAL 9.8
- TI-2026-68608 Payload CMS lets attackers update collection documents CVSS 3.1CRITICAL 9.8
- TI-2026-68606 Remote code execution in Payload Form Builder plugin CVSS 3.1CRITICAL 10.0
- TI-2026-68612 Payload authentication token field handling issue CVSS 4.0CRITICAL 9.2
- TI-2026-26995 Payload has Unvalidated Input in Password Recovery Endpoints CVSS 3.1CRITICAL 9.1
- TI-2022-10819 An arbitrary file upload vulnerability in the file upload module of PayloadCMS v0.15.0… CVSS 3.1CRITICAL 9.8
Sources
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences