# Subscription & Recurring Payment for WooCommerce <= 2.5.1 - Unauthenticated Server-Side Request Forgery via PayPal Webhook Certificate URL

- **ID:** WPSEC-2026-2948
- **Plugin:** Subscriptions for WooCommerce with Stripe Recurring Payments (`subscription`), https://wordpress.org/plugins/subscription/
- **Affected versions:** all versions before 2.5.2
- **Fixed in:** 2.5.2 (Update to 2.5.2 or later.)
- **Severity:** High 7.2 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N)
- **Weakness:** CWE-918
- **Usage among sites WPSec scans:** plugin Low, affected versions Low (as of 2026-11-12)
- **Attack surface analysis:** https://attacksurface.wpsec.com/plugin/subscription
- **Fix released:** 2026-11-11
- **Published:** 2026-11-12
- **URL:** https://wpsec.com/vuln/WPSEC-2026-2948/

## Description

The Subscriptions for WooCommerce with Stripe Recurring Payments plugin for WordPress is vulnerable to Server-Side Request Forgery via the PAYPAL-CERT-URL header of the PayPal webhook endpoint in all versions up to, and including, 2.5.1, due to the manual webhook signature verification fallback fetching the request-supplied certificate URL with wp_remote_get() without restricting it to PayPal hosts. This makes it possible for unauthenticated attackers to make web requests to arbitrary locations, including internal services, from the web application. Because the fetched certificate is trusted for signature verification, attackers who know the configured webhook ID (or where none is configured) can also forge webhook events.

## References

- https://wpsec.com/vuln/WPSEC-2026-2948/
- https://plugins.svn.wordpress.org/subscription/tags/2.5.2/
- https://wordpress.org/plugins/subscription/

Source: WPSec, https://wpsec.com/vuln/WPSEC-2026-2948/

License: CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Free to use, share and adapt, also commercially, if you credit WPSec and link to this advisory.
