{"id":"CVE-2026-105860","aliases":["EUVD-2026-93506","GHSA-p96c-xwx8-3cqj"],"status":"published","title":"Payload: Tenant authorization bypass in Multi-Tenant Plugin","description":"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.","severity":{"version":"4.0","score":7.1,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N","level":"high","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-12","score":0.00193,"percentile":0.09082,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-862"],"published":"2026-10-06T16:33:20Z","modified":"2026-10-28T02:30:33Z","fixes":[{"ecosystem":"npm","package":"@payloadcms/plugin-multi-tenant","fixed_in":["3.90.0","4.0.0-canary.34"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"npm","package":"@payloadcms/plugin-multi-tenant","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.90.0"}]}]},{"source":"ghsa","ecosystem":"npm","package":"@payloadcms/plugin-multi-tenant","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.0.0-canary.0"},{"fixed":"4.0.0-canary.34"}]}]},{"source":"osv","ecosystem":"npm","package":"@payloadcms/plugin-multi-tenant","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"3.90.0"}]}]},{"source":"osv","ecosystem":"npm","package":"@payloadcms/plugin-multi-tenant","ranges":[{"type":"SEMVER","events":[{"introduced":"4.0.0-canary.0"},{"fixed":"4.0.0-canary.34"}]}]}],"products":[{"vendor":"payloadcms","product":"payload"}],"references":[{"url":"https://github.com/payloadcms/payload/security/advisories/GHSA-p96c-xwx8-3cqj","tags":["x_refsource_CONFIRM","Vendor Advisory","advisory","web"]},{"url":"https://github.com/payloadcms/payload/commit/19b58692d20d3947f31124bf7a88ac14a5ebf02e","tags":["x_refsource_MISC","Patch","fix","web"]},{"url":"https://github.com/payloadcms/payload/releases/tag/v3.90.0","tags":["x_refsource_MISC","Patch","Release Notes","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-105860","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-p96c-xwx8-3cqj"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/105xxx/CVE-2026-105860.json","tags":["advisory"]},{"url":"https://github.com/payloadcms/payload","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2026-105860","title":"Payload: Tenant authorization bypass in Multi-Tenant Plugin","description":"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.","status":"published","published":"2026-10-06T16:33:20.213Z","modified":"2026-10-06T17:15:03.137Z","cvss":[{"version":"4.0","score":7.1,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N","level":"high","assessor":"cna"}],"cwes":["CWE-862"],"updated_at":"2026-11-02T14:19:56.755658Z"}],"euvd":[{"id":"EUVD-2026-93506","description":"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.","status":"published","published":"2026-10-06T16:33:20Z","modified":"2026-10-06T17:15:03Z","cvss":[{"version":"4.0","score":7.1,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N","level":"high"}],"updated_at":"2026-11-02T17:27:37.140631Z"}],"ghsa":[{"id":"GHSA-p96c-xwx8-3cqj","title":"Payload has a tenant authorization bypass in Multi-Tenant Plugin","description":"## Impact\n\nWhen using the default tenant array field access, an authenticated user could assign themselves to other tenants.\n\n**You are affected if:**\n\n- You are using `@payloadcms/plugin-multi-tenant`\n\nIf you configure the tenants arrayFieldAccess.create/update functions, a secured replacement membership field, you are not affected by this specific default behavior.\n\n## Patches\n\nUsers should upgrade Payload packages to `\u003e= 3.90.0` or `\u003e= 4.0.0-canary.34`.\n\n## Workarounds\n\nConfigure tenants arrayFieldAccess.create and tenants arrayFieldAccess.update so only trusted users authorized for all tenants can modify memberships.","status":"published","published":"2026-10-07T20:29:53Z","modified":"2026-10-07T20:29:55Z","cvss":[{"version":"4.0","score":7.1,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N","level":"high"}],"cwes":["CWE-862"],"updated_at":"2026-11-02T14:41:29.107536Z"}],"nvd":[{"id":"CVE-2026-105860","description":"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.","status":"published","published":"2026-10-06T17:17:22.133Z","modified":"2026-10-15T00:10:21.827Z","cvss":[{"version":"4.0","score":7.1,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","level":"high","assessor":"secondary"},{"version":"3.1","score":7.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:N","level":"high","assessor":"primary"}],"cwes":["CWE-862"],"updated_at":"2026-11-02T14:12:54.486849Z"}],"osv":[{"id":"CVE-2026-105860","title":"Payload: Tenant authorization bypass in Multi-Tenant Plugin","description":"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.","status":"published","published":"2026-10-06T16:33:20.213Z","modified":"2026-10-28T02:30:33.266142301Z","cvss":[{"version":"4.0","score":7.1,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N","level":"high"}],"cwes":["CWE-862"],"updated_at":"2026-11-02T15:44:54.583213Z"},{"id":"GHSA-p96c-xwx8-3cqj","title":"Payload has a tenant authorization bypass in Multi-Tenant Plugin","description":"## Impact\n\nWhen using the default tenant array field access, an authenticated user could assign themselves to other tenants.\n\n**You are affected if:**\n\n- You are using `@payloadcms/plugin-multi-tenant`\n\nIf you configure the tenants arrayFieldAccess.create/update functions, a secured replacement membership field, you are not affected by this specific default behavior.\n\n## Patches\n\nUsers should upgrade Payload packages to `\u003e= 3.90.0` or `\u003e= 4.0.0-canary.34`.\n\n## Workarounds\n\nConfigure tenants arrayFieldAccess.create and tenants arrayFieldAccess.update so only trusted users authorized for all tenants can modify memberships.","status":"published","published":"2026-10-07T20:29:53Z","modified":"2026-10-07T20:45:05.342379505Z","cvss":[{"version":"4.0","score":7.1,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N","level":"high"}],"cwes":["CWE-862"],"updated_at":"2026-11-02T15:46:52.891208Z"}]}}
