Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain Subscriber-level WordPress account
-
DeliveryLoad frontend page to extract nonce from wp_localize_script output
-
ExploitCraft POST to admin-ajax.php with action=ced_wholesale_request_send
-
ExecutionSet role_required=administrator in POST body
-
PersistHandler calls WP_User::add_role('administrator') without validation
-
ImpactFull Administrator access granted
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 three concrete conditions to be simultaneously true: (1) the target WordPress site must have the Wholesale Market plugin installed and active at version 2.2.2 or earlier; (2) the site administrator must have explicitly enabled the 'Assigning requested role directly' option in the plugin configuration - this is not the default state and represents a deliberate admin choice; (3) the attacker must possess at minimum a Subscriber-level authenticated account on the target site. The nonce that the handler validates is embedded in frontend page output via wp_localize_script and is therefore accessible to any logged-in user, making it a non-barrier. Exploitation is limited to authenticated users (PR:L per CVSS) and is entirely blocked when the 'Assigning requested role directly' configuration flag is disabled. |
| Impact | The CVSS 3.1 score of 8.8 (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) accurately reflects the threat profile when the vulnerable feature is active. Attack vector is network (AJAX endpoint), complexity is low (nonce is trivially retrievable), privileges required are low (Subscriber), and impact is full across confidentiality, integrity, and availability given Administrator-level access to the WordPress site. However, a critical limiting factor is that exploitation requires the site administrator to have explicitly enabled the 'Assigning requested role directly' option - a non-default plugin configuration. This deployment-dependent condition meaningfully reduces real-world risk compared to the raw CVSS score implies. No EPSS score was provided in the source data, and the CVE is not listed in the CISA KEV catalog, so no confirmed active exploitation signal exists. For sites where the configuration flag is disabled, this vulnerability is not exploitable. For sites where it is enabled, the attack is straightforward and should be treated as a high priority. |
| Exploit ScenarioDerived | An attacker registers or obtains a Subscriber-level account on a target WordPress site running Wholesale Market ≤ 2.2.2 with 'Assigning requested role directly' enabled, then loads any frontend page where the plugin enqueues its script to extract the nonce value from the page source. The attacker sends a crafted HTTP POST request to the WordPress admin-ajax.php endpoint targeting the ced_wholesale_request_send action with the role_required parameter set to 'administrator', immediately receiving Administrator privileges on the site with full access to all content, users, and settings. No publicly available exploit code was identified at time of analysis, but the attack requires no special tooling. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 15, 2026
Privilege escalation in the Wholesale Market WordPress plugin (versions up to and including 2.2.2) allows any authenticated user with Subscriber-level access or higher to elevate their account to Administrator by supplying an arbitrary role name to a poorly validated AJAX endpoint. The ced_wholesale_request_send_callback() handler accepts a client-controlled role_required POST parameter and passes it directly to WP_User::add_role() without an allowlist, relying solely on a nonce that is freely exposed to all authenticated users via wp_localize_script. No public exploit has been identified at time of analysis, but the low attack complexity combined with Subscriber-level access requirement makes this a realistic and attractive target on sites with the vulnerable configuration option active.
RemediationAI
No fixed version is identified in the provided source data - administrators should consult the Wordfence advisory at https://www.wordfence.com/threat-intel/vulnerabilities/id/abd59d7a-e7f6-440d-9c2a-00266c0dcbff for patch availability and the WordPress.org plugin page for an updated release. As an immediate and effective compensating control, disable the 'Assigning requested role directly' option in the Wholesale Market plugin settings; this removes the code path that calls WP_User::add_role() with client-supplied input and fully mitigates the vulnerability, though it will prevent automated role assignment for wholesale requests, requiring manual role management instead. If the feature must remain active, consider temporarily deactivating the plugin until a patched version is released. Additionally, audit existing user accounts for unexpected Administrator-level privileges that may indicate prior exploitation.
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 vulnerability is classified as CWE-269 (Improper Privilege Management), arising from the plugin's wholesale user registration addon (class-wholesale-user-register-addon.php). WordPress AJAX actions use nonce tokens to validate request authenticity, but when nonces are embedded in frontend page scripts via wp_localize_script, every authenticated session holder can retrieve them - rendering nonce verification an ineffective access control mechanism in this context. The handler verifies a nonce and checks for a positive user ID (confirming any logged-in user), then invokes the native WordPress WP_User::add_role() function with the raw role_required value from the POST body. Since no allowlist restricts the accepted role values, an attacker can supply 'administrator' or any other WordPress role string, instantly gaining the associated capabilities. The affected code is present in the plugin's Trac repository at the referenced line numbers (L141, L153, L276, L30) of the 2.2.2 tag.
Know when WordPress 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
Network AJAX vector, low attacker complexity once feature is enabled, Subscriber authentication required, full impact on WordPress site with no scope change.
Primary rating from Vendor (wordfence).
CVSS VectorVendor: wordfence
DescriptionCVE.org
The Wholesale Market plugin for WordPress is vulnerable to privilege escalation in versions up to, and including, 2.2.2 via the ced_wholesale_request_send AJAX action. The ced_wholesale_request_send_callback() handler only verifies a nonce (which is exposed to any authenticated user through wp_localize_script on the frontend) and that the caller has a positive user ID, then calls WP_User::add_role() with the client-supplied role_required POST parameter without restricting the value to an allowlist of wholesale roles. This makes it possible for authenticated attackers, with Subscriber-level access and above, to elevate their privileges to Administrator when the site administrator has enabled the 'Assigning requested role directly' option.
Executive ViewAI
The Wholesale Market WordPress plugin (versions 2.2.2 and earlier) contains a critical privilege escalation vulnerability allowing any Subscriber-level account to elevate itself to Administrator access. Organizations running this plugin risk full data compromise and website control loss from even minimally-privileged user accounts.
No vendor-released patch identified at time of analysis. Interim mitigations: (1) Deactivate and remove the Wholesale Market plugin if not essential to operations, (2) If retention is necessary, disable the vulnerable AJAX endpoint via WordPress hooks or code modification, (3) Restrict Subscriber account creation to fully-trusted personnel only, (4) Deploy WAF rules to block POST requests to the vulnerable endpoint, (5) Enable detailed WordPress audit logging to detect unauthorized role assignments, (6) Monitor wp_usermeta database table for unauthorized role additions.
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.
The mailSend function in the isMail transport in PHPMailer before 5.2.18 might allow remote attackers to pass extra para
The isMail transport in PHPMailer before 5.2.20 might allow remote attackers to pass extra parameters to the mail comman
The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1
The Hash Form - Drag & Drop Form Builder plugin for WordPress is vulnerable to arbitrary file uploads due to missing fil
Authentication bypass in the LiteSpeed Cache WordPress plugin (versions prior to 6.5.0.1) allows unauthenticated remote
The GiveWP - Donation Plugin and Fundraising Platform plugin for WordPress is vulnerable to PHP Object Injection in all
The Simple File List plugin for WordPress through version 4.2.2 contains an unauthenticated remote code execution vulner
The AI Engine WordPress plugin through version 3.1.3 exposes Bearer Token values through the /mcp/v1/ REST API endpoint
The SureTriggers WordPress plugin through version 1.0.82 contains a privilege escalation vulnerability that allows unaut
The Ninja Forms plugin before 2.9.42.1 for WordPress allows remote attackers to conduct PHP object injection attacks via
The Business Directory Plugin - Easy Listing Directories for WordPress plugin for WordPress is vulnerable to time-based
Remote code execution in WordPress 6.9.x (before 6.9.5) and 7.0.x (before 7.0.2) arises from a REST API batch endpoint r
EUVD-2026-59594
GHSA-wv24-4cw2-5gxg
NVD
CVE.org
EPSS
Exploit-DB