Payload is a free and open source headless content management system. In @payloadcms/plugin-multi-tenant versions before 3.90.0 and canary versions before 4.0.0-canary.34, the default tenant array field access allows an authenticated user to assign the user's own account to other tenants. Deployments that replace the default behavior with secured tenants arrayFieldAccess.create and tenants arrayFieldAccess.update functions are not affected by this behavior.
This issue is fixed in versions 3.90.0 and 4.0.0-canary.34.
Attack Parameters
Impact Assessment
CVSS Vector v4.0
Weakness Type (CWE)
Vulnerable Products 35
| Configuration | From (including) | Up to (excluding) |
|---|---|---|
|
Payloadcms Payload
cpe:2.3:a:payloadcms:payload:*:*:*:*:*:node.js:*:*
|
— |
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:*:*
|
— | — |