Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconAuthenticate as Contributor-level WordPress user
-
DeliveryNavigate to membership plan editor or create new plan
-
ExploitRemove HTML disabled attribute from role dropdown via DevTools or craft direct POST
-
InstallSubmit form with _wps_plan_user_role=administrator
-
C2save_meta_boxes() persists value without server-side blocklist
-
ExecuteAcquire membership on poisoned plan (purchase or self-enroll)
-
ImpactPro plugin calls add_role('administrator') on lifecycle event, granting full admin access
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V8 - Authorization Least privilege enforcement
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires: (1) an attacker-controlled account with at minimum Contributor-level WordPress access - this is the capability needed to satisfy the |
| Impact | The CVSS 8.8 score (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) accurately reflects the network-accessible, low-complexity nature of the attack once a Contributor account exists. The key limiting signal not captured in the base score is the hard dependency on the Pro companion plugin being installed and active - without it, the poisoned meta is stored but never applied, meaning exploitation is blocked even if the free plugin is vulnerable. This dependency raises realistic attack complexity above what AC:L suggests in isolation. No EPSS data was supplied, and the vulnerability is not listed in the CISA KEV catalog, so there is no confirmed active exploitation. However, Wordfence's disclosure includes direct source-line references, making independent exploit development straightforward for any attacker with a test environment. The realistic priority is high for WordPress sites that run both the free Subscriptions for WooCommerce plugin AND the Pro companion, particularly multi-tenant or marketplace-style sites where untrusted Contributor accounts exist. Sites running only the free plugin are not exploitable for the full impact but should still patch to eliminate the stored-meta poisoning vector. |
| Exploit ScenarioDerived | An attacker registers a Contributor-level account on a WordPress site running both the free and Pro Subscriptions for WooCommerce plugins. They navigate to edit or create a membership plan, then use browser DevTools (or a tool like Burp Suite) to remove the |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 01, 2026
Privilege escalation in the Subscriptions for WooCommerce WordPress plugin (versions up to and including 2.0.0) allows authenticated Contributors to elevate their accounts to Administrator by poisoning a membership plan's stored role meta. The save_meta_boxes() function accepts the _wps_plan_user_role POST parameter with no server-side allowlist blocking privileged roles; the only guards applied - sanitize_key() and wp_roles()->is_role() - both pass 'administrator' as valid. Full exploitation requires the companion Pro plugin to be active, as it is the component that reads the stored meta and calls add_role() during membership lifecycle events. No public exploit has been identified at time of analysis, though Wordfence has published full technical detail and the vulnerable source lines are publicly browsable.
RemediationAI
A fix has been committed to the plugin repository (WordPress.org SVN changeset 3624543, referenced at https://plugins.trac.wordpress.org/changeset?reponame=&old=3624543%40subscriptions-for-woocommerce&new=3624543%40subscriptions-for-woocommerce); however, the exact released version number of the patched build is not confirmed in the available input data - administrators should update to the latest available version beyond 2.0.0 via the WordPress plugin dashboard and verify the installed version exceeds 2.0.0. If an immediate update is not possible, the primary compensating control is to remove Contributor-level (and above, below Administrator) untrusted user accounts, since exploitation requires at minimum Contributor access to edit posts. As a secondary control, deactivating the Subscriptions for WooCommerce Pro companion plugin blocks the add_role() call that applies the escalated role, preventing the full impact - though this disables Pro subscription functionality as a side effect. There is no safe way to block the vulnerability at the WAF layer without risking false positives on legitimate plan edits; a server-side role allowlist fix in save_meta_boxes() is the only correct remediation.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The affected component is the wps_membership_plan custom post type (CPT) handler in class-wps-membership-plan-cpt.php. Because the CPT is registered with capability_type => 'post', WordPress maps its edit capability to the standard edit_post check - meaning any user with Contributor access (who can edit their own posts) satisfies the current_user_can('edit_post', $post_id) guard at line ~L477. The UI renders the role selection dropdown with the HTML disabled attribute (meta-box-plan-details.php ~L102), which is a client-side-only control; it is trivially removed via browser DevTools or bypassed by crafting a direct HTTP POST. save_meta_boxes() at ~L483 then writes the attacker-supplied role string directly to _wps_plan_user_role post meta. The Pro companion plugin subsequently reads this meta via get_post_meta() and calls WordPress's native add_role() function during membership lifecycle events (activation, renewal, etc.), applying the stored role - including 'administrator' - to the member's user account. Root cause class is CWE-269: Improper Privilege Management, specifically a missing server-side blocklist for privileged role values. Affected CPE: cpe:2.3:a:wpswings:subscriptions_for_woocommerce:*:*:*:*:*:*:*:* through version 2.0.0.
Know when Subscriptions For Woocommerce gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
PR:L confirmed by Contributor-level requirement; AC:L reflects straightforward POST bypass once authenticated, despite Pro plugin dependency.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
DescriptionCVE.org
The Subscriptions for WooCommerce plugin for WordPress is vulnerable to Privilege Escalation in versions up to, and including, 2.0.0. This is due to the save_meta_boxes() function persisting the _wps_plan_user_role membership plan meta from $_POST without an allowlist that excludes privileged roles - the only validations applied, sanitize_key() and wp_roles()->is_role(), both accept 'administrator' as a valid value, and the UI's disabled attribute on the role dropdown is a client-side-only control trivially bypassed via DevTools or a direct POST request; additionally, because the wps_membership_plan custom post type is registered with capability_type => 'post', any user who can edit posts satisfies the current_user_can('edit_post', $post_id) guard in save_meta_boxes(). This makes it possible for authenticated attackers, with Contributor-level access and above, to escalate their privileges to Administrator by storing 'administrator' as the role granted on membership acquisition, which the Pro companion plugin then applies via add_role() during membership lifecycle events. Successful exploitation requires the Subscriptions for WooCommerce Pro companion plugin to be active, as it is the component that reads the stored _wps_plan_user_role meta via get_post_meta() and calls add_role() to apply the role during membership lifecycle events.
Articles & Coverage 1
Executive ViewAI
Subscriptions for WooCommerce plugin (versions ≤2.0.0) contains a high-severity privilege escalation vulnerability allowing unauthorized administrator access on affected WordPress e-commerce sites. Although no public exploit has been identified, publicly disclosed technical details increase risk of rapid exploitation development. Organizations relying on this plugin face immediate risk of complete website compromise and customer data exposure.
No vendor-released patch identified at time of analysis. Interim mitigations: full exploitation requires Subscriptions for WooCommerce Pro plugin activation-disabling or removing the Pro plugin reduces attack surface; restrict or disable the base plugin if operations permit; implement principle of least privilege and audit all Contributor-level user accounts; deploy enhanced logging and alerting on role modifications and administrative access; restrict direct database access; maintain current verified backups enabling rapid recovery if exploitation is detected.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.
Remote code execution in Subscriptions for WooCommerce WordPress plugin (before 2.0.1) is reachable by any authenticated
Payment integrity bypass in the Subscriptions for WooCommerce plugin (versions before 2.0.1) enables financial fraud by
Unauthenticated remote attackers can retrieve a WooCommerce store's complete subscription roster - customer usernames, p
Cross-site request forgery in the WordPress plugin Subscriptions for WooCommerce before 2.0.3 allows an attacker to canc
Insecure Direct Object Reference (IDOR) in the Subscriptions for WooCommerce WordPress plugin before 2.0.1 allows any au
An authentication bypass vulnerability exists in WP Swings Subscriptions for WooCommerce plugin versions up to and inclu
Arbitrary plugin installation in the WP Swings Subscriptions for WooCommerce plugin (versions up to and including 2.0.0)
The Subscriptions for WooCommerce plugin contains a critical authentication bypass vulnerability in the subscription can
EUVD-2026-51687
GHSA-x6w6-m8vc-m6cp
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB