# Membership Plugin – Kadence Memberships <= 4.0.5 - Authenticated (Subscriber+) Insecure Direct Object Reference via Stripe Saved Card Setup

- **ID:** WPSEC-2026-2991
- **Plugin:** Membership Plugin – Kadence Memberships (`restrict-content`), https://wordpress.org/plugins/restrict-content/
- **Affected versions:** from 3.0 before 4.0.6
- **Fixed in:** 4.0.6 (Update to 4.0.6 or later.)
- **Severity:** Medium 4.3 (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N)
- **Weakness:** CWE-639
- **Usage among sites WPSec scans:** plugin Low, affected versions Low (as of 2026-11-12)
- **Attack surface analysis:** https://attacksurface.wpsec.com/plugin/restrict-content
- **Fix released:** 2026-11-11
- **Published:** 2026-11-12
- **URL:** https://wpsec.com/vuln/WPSEC-2026-2991/

## Description

The Membership Plugin – Kadence Memberships plugin for WordPress is vulnerable to Insecure Direct Object Reference via the rcp_stripe_create_setup_intent_for_saved_card AJAX action in all versions up to, and including, 4.0.5, due to missing validation that the user-supplied 'membership_id' belongs to the current user. This makes it possible for authenticated attackers, with subscriber-level access and above who can reach the update card page, to create Stripe setup intents for other users' Stripe customers. They can also obtain the client secret of other users' open subscription payment intents and change the payment method attached to them.

## References

- https://wpsec.com/vuln/WPSEC-2026-2991/
- https://plugins.svn.wordpress.org/restrict-content/tags/4.0.6/
- https://wordpress.org/plugins/restrict-content/

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

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.
