Executive Summary
A high-severity privilege escalation flaw (CVE-2026-86406, CVSS 7.5) has been disclosed in User Registration & Membership, a WordPress plugin used to run gated membership/paywall sites. The bug lives in the plugin's membership purchase flow: it never checks whether the requesting user is allowed to receive the plan they're "buying," and it never validates the payment method or plan ID submitted with the request.
The privilege bar here is unusually low. This is not an admin-only or Author-level bug — any authenticated account, including a freshly self-registered Subscriber, can trigger it. No purchase actually needs to complete. If a site owner has mapped any membership plan to a privileged WordPress role (Editor, Administrator, etc.), an attacker only needs an account and knowledge of the target plan ID to be granted that role outright.
A second, related CVE — CVE-2026-80071 — is a separate bug in the same plugin (also fixed in 5.2.8) involving a user assigning themselves an arbitrary role through membership plan authorship, which requires Author-level access to exploit. Do not conflate the two: CVE-2026-80071 needs an attacker who already holds elevated (Author+) privileges, while CVE-2026-86406 needs nothing more than a standard authenticated session, making it the more broadly and easily exploitable of the pair.
Vulnerability Overview
| Field | Detail |
|---|---|
| CVE ID | CVE-2026-86406 |
| CVSS Score | 7.5 (High) — CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H |
| Vulnerability Type | Improper Privilege Management / Broken Access Control (CWE-269) |
| Attack Vector | Network |
| Attack Complexity | High |
| Privileges Required | Low — any authenticated user, including a base Subscriber account |
| User Interaction | None |
| Affected Software | User Registration & Membership WordPress plugin, versions ≤ 5.2.7 |
| Fixed Version | 5.2.8 |
| Published | 2026-09-13 |
| CVE Assigner | WPScan |
Missing Capability and Payment Validation in the Purchase Flow
According to the NVD description and the WPScan advisory, the plugin's membership-purchase handler has two compounding failures:
- No capability check on the purchaser. The code path that processes "I bought this plan" does not verify the requesting user actually holds the capability required to be assigned the role tied to that plan.
- No validation of the payment method or plan submitted with the request. The plan ID (and the claimed payment method) are trusted as submitted, rather than being verified server-side against an actual completed transaction.
Put together, an attacker doesn't need to defeat a payment gateway or forge a webhook signature — they simply need to reach the purchase-processing endpoint as any logged-in user and reference the plan ID they want. Because the plugin performs the role assignment logic on the assumption that reaching this code path implies a valid purchase, the attacker's account is granted whatever WordPress role the target plan is configured to hand out — without an authorization check gating who is allowed to claim it, and without confirming money ever changed hands.
This is distinct from a payment-gateway bypass in the traditional sense (e.g., manipulating an amount field): the deeper issue is that the authorization decision (who gets promoted to which role) is made without any capability check at all, tied only to unvalidated, client-influenced input.
Impact
The practical impact depends entirely on how a site's membership plans are mapped to WordPress roles — but for many membership/paywall configurations, this is a straight shot to full site compromise:
- Full privilege escalation to any role tied to a plan. A common pattern for "premium" or "VIP" tiers is mapping a paid plan to Administrator (or a role with
administrator-equivalent capabilities) so paying members get extended dashboard access — CVE-2026-86406 lets any Subscriber claim that mapping for free. - Complete site takeover once Administrator is reached: theme/plugin editor access (arbitrary PHP execution), full user management (creating additional hidden admin accounts), database-adjacent plugin access, content defacement, and malware/backdoor injection.
- Silent exploitation. Because no real purchase or payment webhook is involved, there is no failed-charge or fraud-alert signal in a payment processor's dashboard — the only trace is on the WordPress side (role changes, user meta, plugin logs), which most sites don't actively monitor.
- Open or low-friction self-registration compounds the risk: if a site allows public sign-up, the "authenticated user" precondition costs an attacker nothing more than creating an account.
Remediation
- Update to User Registration & Membership 5.2.8 or later immediately. This is the vendor-shipped fix for both CVE-2026-86406 and the related CVE-2026-80071.
- Audit recent account activity. Review users created or role-changed since the plugin was installed, especially any Subscriber/Customer-tier account that jumped to Editor, Administrator, or another privileged role.
- Cross-check role grants against real payment records. Compare WordPress role assignments tied to membership plans against actual completed transactions in your payment processor. A role grant with no matching payment is a strong indicator of exploitation.
- Review membership plan-to-role mappings. Avoid mapping highly privileged roles (Administrator, Editor) directly to any self-service or purchasable plan. Where elevated access is a real product feature, map it to a dedicated, narrowly-scoped custom role instead, and grant true administrative capabilities manually after out-of-band payment verification.
- Consider temporarily disabling public registration or the membership purchase flow on affected sites until the update is applied, particularly if any plan is mapped to a privileged role.
- Rotate credentials and review for planted backdoors (new admin users, modified theme/plugin files) on any site where the update was delayed and plans were mapped to privileged roles.