WPForms <= 1.10.0.4 - Unauthenticated Insufficient Verification of Data Authenticity via PayPal Commerce Webhook Endpoint
13Vexday Risk Score
No sign of exploitation. No public exploitation artifact known so far.
ssvc Trackcvss 5.3epss 0.3%
exploitation probability
0.3%top 78% of all CVEs
observed exploitation
nono source reports it
The WPForms – Easy Form Builder for WordPress – Contact Forms, Payment Forms, Surveys, & More plugin for WordPress is vulnerable to Insufficient Verification of Data Authenticity in versions up to and including 1.10.0.1. This is due to the PayPal Commerce webhook endpoint processing unauthenticated JSON webhook payloads without verifying that the request originated from PayPal using the required HMAC-SHA256 webhook signature, and only checking whether the supplied event_type is whitelisted before dispatching the attacker-controlled resource data to handlers that update payment records. This makes it possible for unauthenticated attackers who know a valid PayPal subscription_id to forge PayPal webhook events and modify subscription payment records, such as reactivating a cancelled or suspended subscription by setting its subscription_status to active.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
Affected products
smub · WPForms – Easy Form Builder for WordPress – Contact Forms, Payment Forms, Surveys, & MoreReferences
https://plugins.trac.wordpress.org/browser/wpforms-lite/tags/1.10.0.1/src/Integrations/PayPalCommerce/Api/WebhookRoute.php#L122https://plugins.trac.wordpress.org/browser/wpforms-lite/tags/1.10.0.1/src/Integrations/PayPalCommerce/Api/WebhookRoute.php#L170https://plugins.trac.wordpress.org/browser/wpforms-lite/tags/1.10.0.1/src/Integrations/PayPalCommerce/Api/Webhooks/BillingSubscriptionActivated.php#L38https://plugins.trac.wordpress.org/browser/wpforms-lite/tags/1.10.0.1/src/Integrations/PayPalCommerce/Api/Webhooks/BillingSubscriptionCancelled.php#L32https://plugins.trac.wordpress.org/browser/wpforms-lite/tags/1.10.0.4/src/Integrations/PayPalCommerce/Api/WebhookRoute.php#L122https://plugins.trac.wordpress.org/browser/wpforms-lite/tags/1.10.0.4/src/Integrations/PayPalCommerce/Api/WebhookRoute.php#L170https://plugins.trac.wordpress.org/browser/wpforms-lite/tags/1.10.0.4/src/Integrations/PayPalCommerce/Api/Webhooks/BillingSubscriptionActivated.php#L38https://plugins.trac.wordpress.org/browser/wpforms-lite/tags/1.10.0.4/src/Integrations/PayPalCommerce/Api/Webhooks/BillingSubscriptionCancelled.php#L32https://plugins.trac.wordpress.org/browser/wpforms-lite/trunk/src/Integrations/PayPalCommerce/Api/WebhookRoute.php#L122https://plugins.trac.wordpress.org/browser/wpforms-lite/trunk/src/Integrations/PayPalCommerce/Api/WebhookRoute.php#L170https://plugins.trac.wordpress.org/browser/wpforms-lite/trunk/src/Integrations/PayPalCommerce/Api/Webhooks/BillingSubscriptionActivated.php#L38https://plugins.trac.wordpress.org/browser/wpforms-lite/trunk/src/Integrations/PayPalCommerce/Api/Webhooks/BillingSubscriptionCancelled.php#L32