Your RSA-2048 keys break in 2030. Find every one of them before attackers do.
📦 npm
Not in CISA KEV

Payload Ecommerce has an order confirmation validation issueGHSA-8r29-2mp2-pmrw

Fix: payloadcms/payload@6c0c4dc

GHSA-8r29-2mp2-pmrw is a CWE-837 vulnerability in @payloadcms/plugin-ecommerce. A fix is available for @payloadcms/plugin-ecommerce — see the affected versions and patch details below.

Also known asCVE-2026-105850
Published
Updated
Affected
2 pkgs
Patched
2 / 2
Exploits
None indexed
Exploitation data as of Oct 16, 2026 · OSV.dev, NVD, FIRST.org (EPSS)

Exploitation Status

No confirmed exploitation observed yet

  • CISA assesses this as automatable — exploitation doesn’t require manual, per-target effort, which raises the odds of mass scanning and opportunistic attacks.
  • CISA’s own triage has not observed active exploitation or public proof-of-concept code for this CVE as of its last assessment.

Exploitation and automatability from CISA’s SSVC triage for GHSA-8r29-2mp2-pmrw.

EPSS Exploitation Probability

via FIRST.org ↗
0.3%probability of exploitation in next 30 days
Lower Risk0.00%
Lower risk than most CVEs22th percentile — riskier than 22% of all scored CVEsHighest risk

Probability of exploitation in the next 30 days, from FIRST.org EPSS.

Real-World Exposure

2 pkgs affected

How broadly this vulnerability is actually deployed: weekly install volume shows current usage, and reverse-dependency count shows how many other packages break if it stays unpatched.

2other npm packages depend on this — each one inherits the vulnerability until it's patched upstream
@payloadcms/plugin-ecommercenpm
12Kdownloads / week

Description

Impact

When using the Stripe payment adapter, an order confirmation could be processed more than once under certain conditions.

You are affected if:

  • You use @payloadcms/plugin-ecommerce with the Stripe payment adapter.

Deployments that do not use the Stripe payment flow are not affected.

Patches

Users should upgrade Payload packages to >= 3.90.0 or >= 4.0.0-canary.34.

Workarounds

Ensure Stripe order confirmations can only be processed once. This is a temporary mitigation; upgrading to a patched version is recommended.

Affected Packages

2 total 2 fixed
EcosystemPackageVulnerable rangeFix
📦npm@payloadcms/plugin-ecommerceall versions3.90.0npm install @payloadcms/plugin-ecommerce@3.90.0
📦npm@payloadcms/plugin-ecommerce≥ 4.0.0-canary.0&&< 4.0.0-canary.344.0.0-canary.34npm install @payloadcms/plugin-ecommerce@4.0.0-canary.34

Affected Products

1 product · 35 configurations
Application
payloadpayloadcms
< 3.90.0
1 version
4.0.0

Detection & mitigation playbook

Open-source dependency
  1. Detect

    Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for @payloadcms/plugin-ecommerce, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.

  2. Fix

    Update @payloadcms/plugin-ecommerce to 3.90.0 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-8r29-2mp2-pmrw is resolved across your whole dependency graph.

  3. Workarounds

    If you can't upgrade right away: gate or disable the affected feature, validate untrusted input at the boundary, and avoid passing attacker-controlled data into the vulnerable path. O3's runtime protection blocks exploitation in production as an interim safeguard until the upgrade lands.

Frequently Asked Questions

## Impact When using the Stripe payment adapter, an order confirmation could be processed more than once under certain conditions. You are affected if: - You use `@payloadcms/plugin-ecommerce` with the Stripe payment adapter. Deployments that do not use the Stripe payment flow are not affected. ## Patches Users should upgrade Payload packages to `>= 3.90.0` or `>= 4.0.0-canary.34`. ## Workarounds Ensure Stripe order confirmations can only be processed once. This is a temporary mitigation; upgrading to a patched version is recommended.
O3 Security · Impact-Aware SCA

Is GHSA-8r29-2mp2-pmrw in your dependencies?

Find it across npm, including transitive dependencies.

Payload Ecommerce has an order confirmation validation…