Skip to main content

Wholesale Market CVE-2026-14279

| EUVDEUVD-2026-59594 HIGH
Improper Privilege Management (CWE-269)
2026-08-15 security@wordfence.com GHSA-wv24-4cw2-5gxg
8.8
CVSS 3.1 · Vendor: wordfence
View

Attack ChainAIDerived

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

  1. Access
    Obtain Subscriber-level WordPress account
  2. Delivery
    Load frontend page to extract nonce from wp_localize_script output
  3. Exploit
    Craft POST to admin-ajax.php with action=ced_wholesale_request_send
  4. Execution
    Set role_required=administrator in POST body
  5. Persist
    Handler calls WP_User::add_role('administrator') without validation
  6. Impact
    Full 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.

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

Wholesale Market 0 ≤2.2.2

Affected Packages

euvd wholesale_market 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 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

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

Network AJAX vector, low attacker complexity once feature is enabled, Subscriber authentication required, full impact on WordPress site with no scope change.

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

Why It Matters

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.

Business Impact: High
Compensating Controls

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

EPSS Score
0.3%
Top 79% exploitable
Prevalence
Low
niche WordPress wholesale B2B plugin, limited install base
Social Media
3
Sightings
Data Quality
4 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· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

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.

CVE-2016-10033 CRITICAL POC
9.8 Dec 30

The mailSend function in the isMail transport in PHPMailer before 5.2.18 might allow remote attackers to pass extra para

CVE-2016-10045 CRITICAL POC
9.8 Dec 30

The isMail transport in PHPMailer before 5.2.20 might allow remote attackers to pass extra parameters to the mail comman

CVE-2023-6553 CRITICAL POC
9.8 Dec 15

The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1

CVE-2024-5084 CRITICAL POC
9.8 May 23

The Hash Form - Drag & Drop Form Builder plugin for WordPress is vulnerable to arbitrary file uploads due to missing fil

CVE-2024-44000 CRITICAL POC
9.8 Oct 20

Authentication bypass in the LiteSpeed Cache WordPress plugin (versions prior to 6.5.0.1) allows unauthenticated remote

CVE-2024-8353 CRITICAL POC
9.8 Sep 28

The GiveWP - Donation Plugin and Fundraising Platform plugin for WordPress is vulnerable to PHP Object Injection in all

CVE-2020-36847 CRITICAL POC
9.8 Jul 12

The Simple File List plugin for WordPress through version 4.2.2 contains an unauthenticated remote code execution vulner

CVE-2025-11749 CRITICAL POC
9.8 Nov 05

The AI Engine WordPress plugin through version 3.1.3 exposes Bearer Token values through the /mcp/v1/ REST API endpoint

CVE-2025-27007 CRITICAL POC
9.8 May 01

The SureTriggers WordPress plugin through version 1.0.82 contains a privilege escalation vulnerability that allows unaut

CVE-2016-1209 CRITICAL POC
9.8 May 14

The Ninja Forms plugin before 2.9.42.1 for WordPress allows remote attackers to conduct PHP object injection attacks via

CVE-2024-4443 CRITICAL POC
9.8 May 22

The Business Directory Plugin - Easy Listing Directories for WordPress plugin for WordPress is vulnerable to time-based

CVE-2026-63030 CRITICAL POC
9.8 Jul 17

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

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