Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
Unauthenticated network callback with trivial signature forgery gives AV:N/AC:L/PR:N/UI:N; impact is falsifying paid status, so I:H and C:N/A:N.
Primary rating from Vendor (WPScan).
CVSS VectorVendor: WPScan
Lifecycle Timeline
4DescriptionCVE.org
The PhonePe Payment Solutions WordPress plugin before 3.1.0 does not properly verify the authenticity of incoming payment callbacks: the secret used to validate the callback signature is empty on sites configured through the current setup flow, so the expected signature reduces to an unkeyed hash of the request body that anyone can compute. This allows unauthenticated attackers to forge a payment-success notification and mark unpaid WooCommerce orders as paid without any payment being made.
AnalysisAI
Payment authentication bypass in the PhonePe Payment Solutions WordPress/WooCommerce plugin before 3.1.0 lets unauthenticated attackers forge payment-success callbacks and mark unpaid orders as paid. Because sites set up through the current onboarding flow have an empty callback-validation secret, the expected signature collapses to an unkeyed hash of the request body that anyone can reproduce. Publicly available exploit code exists (reported by WPScan), though EPSS is low (0.14%) and there is no public exploit identified as being used in the wild.
Technical ContextAI
The plugin integrates the PhonePe payment gateway into WooCommerce and relies on server-to-server callback notifications to confirm that an order has been paid. Payment gateways normally sign these callbacks with a shared secret (an HMAC) so the merchant can verify authenticity. Here the secret is empty for sites configured via the current setup flow, meaning signature verification degenerates from a keyed HMAC into a plain unkeyed hash of the raw request body that any party can compute without knowing any secret. This is a classic CWE-862 missing-authorization / broken-authenticity check: the endpoint accepts state-changing input without a trustworthy way to prove it originated from PhonePe. The affected component is identified by CPE cpe:2.3:a:unknown:phonepe_payment_solutions and covers all versions prior to 3.1.0.
RemediationAI
Vendor-released patch: upgrade the PhonePe Payment Solutions plugin to version 3.1.0 or later, which corrects callback-signature validation so an empty/unkeyed secret is no longer accepted; see the WPScan advisory at https://wpscan.com/vulnerability/e35eb029-87c3-4837-87c1-4ad7f6f5817f/. Until patching, treat completed WooCommerce orders as untrusted and reconcile them against PhonePe's own merchant dashboard/settlement reports before fulfilling, and re-run the plugin setup to ensure a non-empty callback secret/salt is actually populated (the root cause is the empty secret). As a compensating control you can restrict the callback endpoint at the web server or WAF so it only accepts requests from PhonePe's published callback IP ranges - this blocks arbitrary forgers but will silently drop legitimate callbacks if PhonePe changes source IPs, so monitor for missed confirmations. Do not rely on order status alone for fulfillment while unpatched.
Same weakness CWE-862 – Missing Authorization
View allSame technique Authentication Bypass
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-45145
GHSA-vf96-qpw4-cqjr