CVE-2026-2381: WooCommerce Stripe Payment Gateway <= 10.7.0 - Missing Authorization to Unauthenticated Order Status Manipulation via 'order' Parameter

Published Jun 16, 2026
·
Updated

The WooCommerce Stripe Payment Gateway plugin for WordPress is vulnerable to unauthorized modification of data due to a missing capability check on the ajaxpayfororder() function in all versions up to, and including, 10.7.0 This is due to a missing order ownership or orderkey verification when processing payment for an order via the wcstripepayfororder WC-AJAX endpoint. The function only validates a nonce (which is publicly available on any WooCommerce page where Express Checkout is enabled), but does not verify that the requesting user owns the target order and is allowed to modify it. This makes it possible for unauthenticated attackers to force any pending order into a failed status by providing a fake payment method, causing a payment exception that updates the order status to "failed" via sequential order ID enumeration.

Affected Software

1 affected component
WooCommerce WooCommerce Stripe Payment Gateway<=10.7.0

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Configuration

    Disable Express Checkout if it is not required. The nonce used by ajax_pay_for_order is publicly available on WooCommerce pages when Express Checkout is enabled, increasing exposure.

    WooCommerce Stripe Payment Gateway Express Checkout = disabled
  2. Configuration

    Modify the ajax_pay_for_order() handler (wc_stripe_pay_for_order WC-AJAX endpoint) to verify that the requesting user owns the target order or to validate the order_key and to perform appropriate capability/authorization checks before processing payment or updating order status.

    WooCommerce Stripe Payment Gateway ajax_pay_for_order authorization = require order ownership or order_key verification and capability check
  3. Compensating control

    Restrict access to the WC-AJAX endpoint wc_stripe_pay_for_order (for example via web application firewall rules, server configuration, or IP allowlisting) so that unauthenticated requests cannot invoke the endpoint.

  4. Operational

    Audit recent orders for unexpected or unauthorized transitions to 'failed' status (especially via sequential order ID enumeration) and restore legitimate pending orders as needed; investigate logs for attempts to invoke wc_stripe_pay_for_order with arbitrary order IDs.

Event History

Jun 16, 2026
CVE Published
via MITRE·09:31 AM
Data Sourced
via MITRE·09:31 AM
DescriptionSeverityWeakness
Data Sourced
via NVD·10:16 AM
DescriptionSeverityWeakness
Free Weekly Intel

Don't miss critical vulnerabilities

Join thousands of security professionals who receive our weekly digest of trending CVEs, zero-days, and exploited vulnerabilities.

No spam. Unsubscribe anytime.

Frequently Asked Questions

1

What is the severity of CVE-2026-2381?

CVE-2026-2381 has a medium severity rating of 6.5.

2

How do I fix CVE-2026-2381?

To fix CVE-2026-2381, update the WooCommerce Stripe Payment Gateway plugin to version 10.7.1 or higher.

3

What kind of vulnerability is CVE-2026-2381?

CVE-2026-2381 is a vulnerability that allows unauthorized manipulation of order status due to a missing authorization check.

4

Who is affected by CVE-2026-2381?

CVE-2026-2381 affects all versions of the WooCommerce Stripe Payment Gateway up to and including 10.7.0.

5

What is the impact of CVE-2026-2381?

The impact of CVE-2026-2381 includes the potential for an attacker to modify order data without proper authorization.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203