Privilege Escalation in Subscriptions for WooCommerce Plugin
The Subscriptions for WooCommerce plugin for WordPress is susceptible to privilege escalation allowing authenticated users with Contributor access to promote themselves to Administrator via insecure meta box handling.
The Subscriptions for WooCommerce plugin for WordPress (versions 2.0.0 and earlier) contains a critical privilege escalation vulnerability (CVE-2026-15414). The flaw resides in the save_meta_boxes() function, which incorrectly handles the _wps_plan_user_role meta field during membership plan creation. The plugin relies on client-side disabled attributes in the UI to prevent the selection of privileged roles, a control that is trivially bypassed. Furthermore, the backend validation uses sanitize_key() and wp_roles()->is_role(), both of which permit the 'administrator' role. Because the wps_membership_plan post type uses standard post capabilities, any user with permission to edit posts (Contributor or higher) can trigger the save_meta_boxes() function. If the Pro companion plugin is active, it processes the injected 'administrator' value in _wps_plan_user_role and promotes the attacker via add_role().
Attack Chain
- Attacker authenticates as a user with Contributor-level access or higher.
- Attacker initiates an HTTP POST request to modify or create a
wps_membership_planpost. - Attacker bypasses the UI's
disabledattribute by intercepting the request or using browser DevTools. - Attacker injects the
administratorvalue into the_wps_plan_user_rolemeta field within the POST body. - The plugin's
save_meta_boxes()function executes, validating the input with insufficient checks that allow the 'administrator' string. - The
_wps_plan_user_rolemeta is persisted to the database for the membership plan. - The Pro companion plugin monitors membership lifecycle events and reads the malicious meta via
get_post_meta(). - The Pro plugin executes
add_role()using the attacker-supplied value, promoting the user to Administrator.
Impact
Successful exploitation results in full administrative control over the WordPress instance. This vulnerability affects all installations using Subscriptions for WooCommerce 2.0.0 or lower where the Pro companion plugin is also installed. An attacker gaining administrative access can execute arbitrary code, modify site content, exfiltrate user data, or deploy persistent backdoors within the WordPress environment.
Recommendation
Prioritized actions for detection and mitigation:
- Update the Subscriptions for WooCommerce plugin to the latest version once a patch is available.
- Audit existing membership plans for any
_wps_plan_user_rolemeta values set to 'administrator' or other unauthorized roles. - Monitor web server logs for suspicious POST requests targeting
wps_membership_planpost updates that contain unexpected role parameters. - Review all user accounts with Administrator privileges for suspicious recent activity or unauthorized creation.