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 crafted request to the public first-register operation can execute code remotely when local authentication is enabled and no initial user has been created. This issue is fixed in versions 3.90.0 and 4.0.0-canary.34.
Fix
Patch, vendor advisory and mitigation references on NVD 3
- https://github.com/payloadcms/payload/commit/e947fc4ba4a434f276d043386e501b1d14eda679 Patch
- https://github.com/payloadcms/payload/releases/tag/v3.90.0 Patch, Release Notes
- https://github.com/payloadcms/payload/security/advisories/GHSA-97rh-rhh2-7vjv Vendor Advisory
Every line above is quoted from NVD, CISA, Microsoft, the vendor's own advisory or DISA; nothing is generated.
Change history 1
- First seenCVSS 8.1 · payloadcmsNVD modified 2026-10-15 00:11
Affected (CPE criteria) 35
cpe:2.3:a:payloadcms:payload:*:*:*:*:*:node.js:*:*cpe:2.3:a:payloadcms:payload:4.0.0:canary0:*:*:*:node.js:*:*cpe:2.3:a:payloadcms:payload:4.0.0:canary1:*:*:*:node.js:*:*cpe:2.3:a:payloadcms:payload:4.0.0:canary10:*:*:*:node.js:*:*cpe:2.3:a:payloadcms:payload:4.0.0:canary11:*:*:*:node.js:*:*cpe:2.3:a:payloadcms:payload:4.0.0:canary12:*:*:*:node.js:*:*cpe:2.3:a:payloadcms:payload:4.0.0:canary13:*:*:*:node.js:*:*cpe:2.3:a:payloadcms:payload:4.0.0:canary14:*:*:*:node.js:*:*cpe:2.3:a:payloadcms:payload:4.0.0:canary15:*:*:*:node.js:*:*cpe:2.3:a:payloadcms:payload:4.0.0:canary16:*:*:*:node.js:*:*cpe:2.3:a:payloadcms:payload:4.0.0:canary17:*:*:*:node.js:*:*cpe:2.3:a:payloadcms:payload:4.0.0:canary18:*:*:*:node.js:*:*cpe:2.3:a:payloadcms:payload:4.0.0:canary19:*:*:*:node.js:*:*cpe:2.3:a:payloadcms:payload:4.0.0:canary2:*:*:*:node.js:*:*cpe:2.3:a:payloadcms:payload:4.0.0:canary20:*:*:*:node.js:*:*cpe:2.3:a:payloadcms:payload:4.0.0:canary21:*:*:*:node.js:*:*cpe:2.3:a:payloadcms:payload:4.0.0:canary22:*:*:*:node.js:*:*cpe:2.3:a:payloadcms:payload:4.0.0:canary23:*:*:*:node.js:*:*cpe:2.3:a:payloadcms:payload:4.0.0:canary24:*:*:*:node.js:*:*cpe:2.3:a:payloadcms:payload:4.0.0:canary25:*:*:*:node.js:*:*cpe:2.3:a:payloadcms:payload:4.0.0:canary26:*:*:*:node.js:*:*cpe:2.3:a:payloadcms:payload:4.0.0:canary27:*:*:*:node.js:*:*cpe:2.3:a:payloadcms:payload:4.0.0:canary28:*:*:*:node.js:*:*cpe:2.3:a:payloadcms:payload:4.0.0:canary29:*:*:*:node.js:*:*cpe:2.3:a:payloadcms:payload:4.0.0:canary3:*:*:*:node.js:*:*cpe:2.3:a:payloadcms:payload:4.0.0:canary30:*:*:*:node.js:*:*cpe:2.3:a:payloadcms:payload:4.0.0:canary31:*:*:*:node.js:*:*cpe:2.3:a:payloadcms:payload:4.0.0:canary32:*:*:*:node.js:*:*cpe:2.3:a:payloadcms:payload:4.0.0:canary33:*:*:*:node.js:*:*cpe:2.3:a:payloadcms:payload:4.0.0:canary4:*:*:*:node.js:*:*cpe:2.3:a:payloadcms:payload:4.0.0:canary5:*:*:*:node.js:*:*cpe:2.3:a:payloadcms:payload:4.0.0:canary6:*:*:*:node.js:*:*cpe:2.3:a:payloadcms:payload:4.0.0:canary7:*:*:*:node.js:*:*cpe:2.3:a:payloadcms:payload:4.0.0:canary8:*:*:*:node.js:*:*cpe:2.3:a:payloadcms:payload:4.0.0:canary9:*:*:*:node.js:*:*