CVE-2026-9832: Payment Gateway of Stripe for WooCommerce <= 5.0.8 - Unauthenticated Improper Verification of Cryptographic Signature via woocommerce_api_wt_stripe Webhook Endpoint
The Payment Gateway of Stripe for WooCommerce plugin for WordPress is vulnerable to Improper Verification of Cryptographic Signature in all versions up to, and including, 5.0.8. This is due to the publicly accessible woocommerceapiwtstripe webhook endpoint (EHStripeWebhookHandler::handle()) wrapping the only call to \Stripe\Webhook::constructEvent() inside an if (!empty($endpointsecret)) guard that is never entered on default installations — because the ehstripewebhooksecret option is empty after a fresh plugin install — causing the raw, attacker-controlled POST body to be decoded and processed as a fully trusted Stripe event without any signature verification, authentication, or authorization. This makes it possible for unauthenticated attackers to send forged Stripe webhook events to manipulate WooCommerce order statuses, including marking unpaid orders as paid or completed via paymentcomplete(), forcing legitimate orders into a failed state, fabricating dispute notifications, and injecting forged refund events. This vulnerability is only exploitable when the Stripe webhook signing secret has not been configured by an administrator; once a valid signing secret is saved, \Stripe\Webhook::constructEvent() is enforced and forged requests are rejected.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
Stripe for WooCommerce (Payment Gateway of Stripe for WooCommerce)to a version that resolves this vulnerability.Fixed in 5.0.8 - Configuration
Configure and save the Stripe webhook signing secret so that the plugin enforces \Stripe\Webhook::constructEvent() signature verification for the woocommerce_api_wt_stripe webhook endpoint.
Stripe for WooCommerce (Payment Gateway) eh_stripe_webhook_secret = configured with the valid Stripe webhook signing secret
Event History
Frequently Asked Questions
Which installations are exposed to forged webhook events?
Installations are exploitable only when the Stripe webhook signing secret has not been configured. A fresh plugin installation has an empty eh_stripe_webhook_secret option by default, so signature verification is skipped unless an administrator configures a valid signing secret.
What does an attacker need to exploit this issue?
An attacker does not need authentication, authorization, or user interaction. They need network access to send a crafted POST request to the publicly accessible woocommerce_api_wt_stripe webhook endpoint while the signing secret is unset.
What can an attacker do through a forged webhook?
Forged events can manipulate WooCommerce order statuses, including marking unpaid orders as paid or completed, causing legitimate orders to fail, creating dispute notifications, and injecting refund events.
What can be done if updating is not immediately possible?
Configure a valid Stripe webhook signing secret so the plugin verifies incoming webhook signatures. This prevents the described unauthenticated processing path from being used.