Improper privilege management in WP Swings Subscriptions for WooCommerce
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Privilege escalation
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- No fix listed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA. Impact type from CWE-269.
Summary
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.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
Remediation
No fixed version listed by the sources yet.
Timeline
- 2026-10-02 Threatist record created from CVE-2026-15414
- 2026-10-03 Alias added: GHSA-x6w6-m8vc-m6cp
References
Other 6
- https://www.wordfence.com/threat-intel/vulnerabilities/id/195f86a5-e3dc-4414-bbe3-dea312bf30a9?source=cve
- https://plugins.trac.wordpress.org/browser/subscriptions-for-woocommerce/tags/2.0.0/includes/membership/class-wps-membership-plan-cpt.php#L483
- https://plugins.trac.wordpress.org/browser/subscriptions-for-woocommerce/tags/2.0.0/includes/membership/class-wps-membership-plan-cpt.php#L477
- https://plugins.trac.wordpress.org/browser/subscriptions-for-woocommerce/tags/2.0.0/includes/membership/class-wps-membership-plan-cpt.php#L275
- https://plugins.trac.wordpress.org/browser/subscriptions-for-woocommerce/tags/2.0.0/admin/partials/membership/meta-box-plan-details.php#L102
- https://plugins.trac.wordpress.org/changeset?reponame=&old=3624543%40subscriptions-for-woocommerce&new=3624543%40subscriptions-for-woocommerce
More WP Swings vulnerabilities
- TI-2022-04023 Membership For WooCommerce < 2.1.7 - Unauthenticated Arbitrary File Upload CVSS 3.1CRITICAL 9.8
- TI-2022-03713 Return Refund and Exchange For WooCommerce < 4.0.9 - Unauthenticated Arbitrary File Upload CVSS 3.1CRITICAL 9.8
- TI-2022-03957 PDF Generator for WordPress < 1.1.2 - Reflected XSS CVSS 3.1MEDIUM 6.1
- TI-2024-07810 WooCommerce Ultimate Gift Card <= 2.9.2 - Unauthenticated Arbitrary File Upload CVSS 3.1CRITICAL 9.8
- TI-2022-04044 Mautic Integration For WooCommerce < 1.0.3 - Arbitrary Options Update via CSRF CVSS 3.1MEDIUM 4.3
- TI-2025-05629 Unrestricted file upload in WP Swings WooCommerce Refund And Exchange with RMA - Warranty… CVSS 3.1CRITICAL 9.8
Sources
- CVE-2026-15414 · CVE Program
- CVE-2026-15414 · NVD
- FIRST EPSS
- GHSA-x6w6-m8vc-m6cp · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences