Skip to main content

Subscriptions for WooCommerce EUVDEUVD-2026-51687

| CVE-2026-15414 HIGH
Improper Privilege Management (CWE-269)
2026-08-01 Wordfence GHSA-x6w6-m8vc-m6cp
8.8
CVSS 3.1 · Vendor: Wordfence
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Recon
    Authenticate as Contributor-level WordPress user
  2. Delivery
    Navigate to membership plan editor or create new plan
  3. Exploit
    Remove HTML disabled attribute from role dropdown via DevTools or craft direct POST
  4. Install
    Submit form with _wps_plan_user_role=administrator
  5. C2
    save_meta_boxes() persists value without server-side blocklist
  6. Execute
    Acquire membership on poisoned plan (purchase or self-enroll)
  7. Impact
    Pro 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 current_user_can('edit_post', $post_id) check in save_meta_boxes(); (2) the Subscriptions for WooCommerce Pro companion plugin must be installed and active, as it is the exclusive component that reads _wps_plan_user_role via get_post_meta() and calls add_role() during membership lifecycle events - the free plugin alone stores the poisoned value but never applies it; (3) the attacker must be able to acquire a membership tied to the modified plan (purchase it, or if self-service registration is enabled, enroll). Limiting factors: the Pro plugin dependency is a hard gate - sites running only the free plugin cannot be exploited for the role-application impact. Exploitation is not possible by unauthenticated users. The wps_membership_plan CPT's capability_type => 'post' misconfiguration is what allows Contributors (not just Editors or Admins) to reach the vulnerable code path.

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 disabled attribute from the role dropdown and set its value to 'administrator' before submitting the form. The server-side save_meta_boxes() function stores 'administrator' as _wps_plan_user_role with no rejection; the attacker then acquires a membership tied to that plan (purchasing it or self-assigning), and the Pro plugin's lifecycle event handler calls add_role('administrator') on their account, granting full site administrative access.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

Subscriptions for WooCommerce 0 ≤2.0.0

Affected Packages

euvd subscriptions_for_woocommerce no fix

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

Vendor (Wordfence) PRIMARY 8.8 HIGH
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 8.8 HIGH

PR:L confirmed by Contributor-level requirement; AC:L reflects straightforward POST bypass once authenticated, despite Pro plugin dependency.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (Wordfence).

CVSS VectorVendor: Wordfence

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

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.

Executive ViewAI

Why It Matters

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.

Business Impact: High
Compensating Controls

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

EPSS Score
0.3%
Top 74% exploitable
Prevalence
Medium
WooCommerce subscription plugin, common in e-commerce WordPress deployments
Social Media
1
Sightings
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy