Payload is a free and open source headless content management system. In @payloadcms/plugin-ecommerce versions before 3.90.0 and canary versions before 4.0.0-canary.34, use of the Stripe payment adapter can allow a Stripe order confirmation to be processed more than once under certain conditions. 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/6c0c4dc9b4ce1ac87b03fbb5dd7356b8559cbc4e Patch
- https://github.com/payloadcms/payload/releases/tag/v3.90.0 Patch, Release Notes
- https://github.com/payloadcms/payload/security/advisories/GHSA-8r29-2mp2-pmrw 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.8 · payloadcmsNVD modified 2026-10-15 00:12
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:*:*