Description
The Wholesale for WooCommerce plugin for WordPress is vulnerable to Privilege Escalation in all versions up to, and including, 2.0.5. This is due to the `save_requests_meta()` function applying only `sanitize_text_field()` to the `user_role_set` POST parameter before passing it directly to `WP_User::add_role()`, with no allowlist validation against permitted wholesale roles and no capability check such as `current_user_can('promote_users')` or `current_user_can('manage_options')`. This makes it possible for authenticated attackers with author-level access and above to escalate their privileges to administrator by supplying `administrator` as the `user_role_set` value in a crafted request. The function is gated only by a nonce (`request_user_role_nonce`) that is rendered in the meta box on the `wwp_requests` post edit screen; because the post type is registered with `capability_type => 'post'`, any author-level user who has authored a `wwp_requests` post — such as one created via the wholesale registration form — can access this nonce and submit the role-assignment request.
Published: 2026-07-29
Score: 8.8 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The Wholesale for WooCommerce plugin permits an authenticated author to elevate their own role to administrator by sending a crafted request that sets the 'user_role_set' parameter to 'administrator'. The code sanitizes the value only with sanitize_text_field, performs no allowlist against allowed wholesale roles, and does not verify that the executor has privileges such as promote_users or manage_options, enabling a privilege escalation without additional checks.

Affected Systems

All installations of the Wholesale for WooCommerce plugin by Saadiqbal, release versions up to and including 2.0.5 on WordPress, are affected. Users who are authors or higher and who can create or edit 'wwp_requests' posts—including those created via the wholesale registration form—can utilize the vulnerable request.

Risk and Exploitability

With a CVSS score of 8.8 the flaw is High severity. The EPSS score is less than 1%, indicating a low likelihood of observed exploitation, and the vulnerability is not listed in the CISA KEV catalog. Attackers must be authenticated with author-level access or higher, have access to a 'wwp_requests' post, and submit a POST request containing the correct 'request_user_role_nonce', after which the supplied 'administrator' role is directly added via WP_User::add_role, resulting in immediate access to all administrator capabilities.

Generated by OpenCVE AI on August 4, 2026 at 12:40 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply the latest available update to Wholesale for WooCommerce, ensuring the fix for the privilege escalation is included.
  • If an update cannot be applied immediately, limit author-level users from editing or creating 'wwp_requests' posts by adjusting post capabilities or disabling the meta box, which removes access to the request_user_role_nonce.
  • After any remediation, audit user accounts for unauthorized role changes and maintain least-privilege policies to detect potential persistence.

Generated by OpenCVE AI on August 4, 2026 at 12:40 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 29 Jul 2026 15:30:00 +0000

Type Values Removed Values Added
First Time appeared Saadiqbal
Saadiqbal wholesale For Woocommerce
Wordpress
Wordpress wordpress
Vendors & Products Saadiqbal
Saadiqbal wholesale For Woocommerce
Wordpress
Wordpress wordpress

Wed, 29 Jul 2026 13:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Wed, 29 Jul 2026 02:15:00 +0000

Type Values Removed Values Added
Description The Wholesale for WooCommerce plugin for WordPress is vulnerable to Privilege Escalation in all versions up to, and including, 2.0.5. This is due to the `save_requests_meta()` function applying only `sanitize_text_field()` to the `user_role_set` POST parameter before passing it directly to `WP_User::add_role()`, with no allowlist validation against permitted wholesale roles and no capability check such as `current_user_can('promote_users')` or `current_user_can('manage_options')`. This makes it possible for authenticated attackers with author-level access and above to escalate their privileges to administrator by supplying `administrator` as the `user_role_set` value in a crafted request. The function is gated only by a nonce (`request_user_role_nonce`) that is rendered in the meta box on the `wwp_requests` post edit screen; because the post type is registered with `capability_type => 'post'`, any author-level user who has authored a `wwp_requests` post — such as one created via the wholesale registration form — can access this nonce and submit the role-assignment request.
Title Wholesale for WooCommerce <= 2.0.5 - Authenticated (Author+) Privilege Escalation via 'user_role_set' Parameter
Weaknesses CWE-269
References
Metrics cvssV3_1

{'score': 8.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'}


Subscriptions

Saadiqbal Wholesale For Woocommerce
Wordpress Wordpress
cve-icon MITRE

Status: PUBLISHED

Assigner: Wordfence

Published:

Updated: 2026-07-29T13:02:20.552Z

Reserved: 2026-06-12T17:37:43.374Z

Link: CVE-2026-12144

cve-icon Vulnrichment

Updated: 2026-07-29T13:02:13.467Z

cve-icon NVD

Status : Deferred

Published: 2026-07-29T02:16:41.840

Modified: 2026-07-30T14:01:30.413

Link: CVE-2026-12144

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-04T12:45:05Z

Weaknesses
  • CWE-269

    Improper Privilege Management