Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconObtain or register subscriber-level WordPress account
-
DeliveryPOST to save_bloyal_configuration_data AJAX action without capability check
-
ExploitOverwrite bloyal_custom_loyaltyengine_api_url with attacker-controlled server
-
InstallSend unauthenticated GET to /cart REST endpoint
-
C2Plugin calls bloyal_customer_auto_login fetching from attacker server
-
ExecuteAttacker server returns target admin's WordPress user ID as Customer.ExternalId
-
Impactwp_set_auth_cookie() called with admin ID
-
Step 8Full administrator session established
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 a valid WordPress account at Subscriber level or higher on a site running the bLoyal plugin in any version through 3.1.611.78. The first phase (API URL overwrite) requires this authenticated session to reach admin-ajax.php. The second phase (authentication trigger) is entirely unauthenticated and reachable by any network client via the /cart REST route - meaning once the URL is poisoned, even a third party without a WordPress account could trigger the authentication of an arbitrary user. The plugin must be active (not merely installed) for the AJAX handlers and REST route to be registered. No non-default plugin configuration is required; the vulnerable handlers are registered unconditionally on plugin load. Exploitation is limited to sites where an attacker can obtain any subscriber-level account - self-registration is commonly enabled on WooCommerce and retail-oriented WordPress sites, which are bLoyal's primary deployment context. The only meaningful limiting factor is the requirement for that initial subscriber account; sites with closed registration and no untrusted users are not directly exploitable remotely. |
| Impact | The CVSS 8.8 score (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) accurately reflects real-world risk - PR:L captures the required subscriber-level account, AC:L correctly reflects that the two-phase exploit is deterministic and requires no special timing or race conditions, and full C/I/A impact is appropriate since administrator account takeover grants complete control over the WordPress installation. The attack chain involves two distinct steps (reconfigure then trigger), which adds marginal friction compared to a single-step exploit but does not materially raise complexity. EPSS data was not provided, so exploitation probability cannot be quantified numerically. The vulnerability is not listed in CISA KEV, and no public POC has been identified at time of analysis. However, the low privilege requirement combined with the prevalence of open subscriber registration on WooCommerce and loyalty-focused WordPress sites - precisely the deployment context bLoyal targets - means exploitability is high wherever an attacker can obtain any valid account. |
| Exploit ScenarioDerived | An attacker registers a free subscriber account on a WordPress site running bLoyal 3.1.611.78 or earlier, then issues POST requests to admin-ajax.php invoking save_bloyal_configuration_data to overwrite bloyal_custom_loyaltyengine_api_url with a server they control, which is configured to return a JSON response containing the WordPress user ID of the site administrator as Customer.ExternalId. The attacker then makes an unauthenticated GET request to the public /cart REST endpoint, causing the plugin to invoke bloyal_customer_auto_login, fetch from the attacker-controlled URL, and call wp_set_auth_cookie() with the administrator's user ID - yielding a fully authenticated administrator session cookie. No public POC has been identified, but the attack is mechanically straightforward given the confirmed source code references. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 15, 2026
Privilege escalation in the bLoyal: Loyalty & Promotions WordPress plugin allows any subscriber-level authenticated user to overwrite the plugin's configured Loyalty Engine API URL via unprotected AJAX actions, then trigger an unauthenticated REST route to force the plugin to authenticate against an attacker-controlled server and invoke wp_set_auth_cookie() with an arbitrary WordPress user ID, yielding full administrator access. All plugin versions through 3.1.611.78 are affected across every WordPress installation running the plugin. No public exploit code identified at time of analysis, and the vulnerability is not listed in the CISA KEV catalog, but the low barrier to entry - any subscriber account suffices - elevates practical risk significantly on sites with open registration.
RemediationAI
No patched version has been confirmed in available data - the highest tagged release in all references is 3.1.611.78, which remains the affected version. Site administrators should monitor the Wordfence advisory at https://www.wordfence.com/threat-intel/vulnerabilities/id/ba4b58ad-97b3-482a-bf24-1fa85d6ef93d and the WordPress plugin repository for a new release, then upgrade immediately upon availability. As the primary interim compensating control, deactivate or delete the bLoyal plugin entirely until a patch is released; this eliminates the attack surface entirely at the cost of losing loyalty and promotions functionality. If the plugin cannot be deactivated, restrict WordPress user registration to prevent untrusted users from obtaining subscriber accounts, since the first phase of the attack requires a valid authenticated session. A WAF rule blocking POST requests to admin-ajax.php with action values of save_bloyal_configuration_data or save_bloyal_accesskeyverification_data from non-administrator sessions provides an additional layer, though this may interfere with legitimate plugin administration if subscribers are expected to use those actions. Blocking unauthenticated access to the /cart REST endpoint at the WAF or server level disrupts the second phase of the attack but may break legitimate cart functionality for anonymous shoppers.
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) and affects the bLoyal WordPress plugin (CPE: cpe:2.3:a:connectordev:bloyal). The root cause is a two-pronged design failure. First, the AJAX handlers save_bloyal_configuration_data and save_bloyal_accesskeyverification_data are registered without WordPress capability checks or nonce verification - the standard authorization primitives for privileged AJAX actions - meaning any authenticated session can invoke them and modify plugin options, including the Loyalty Engine API URL stored in bloyal_custom_loyaltyengine_api_url and the is_bloyal_custom_api_url flag. Second, the bloyal_customer_auto_login function, invoked from the publicly accessible /cart REST route, unconditionally trusts the Customer.ExternalId field returned by whichever API endpoint is currently stored in plugin options, passing it directly to wp_set_auth_cookie() without validation. Source code evidence is pinned to specific lines in the 3.1.611.78 tag: class-bloyalcontroller.php at L421, L2429, L2470, L2512, and L806, and bloyal.php at L1196, L1553, and L1596.
Know when Bloyal 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
PR:L reflects the required subscriber account; AC:L because the two-phase exploit is deterministic; full C/I/A because admin takeover grants complete site control.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
DescriptionCVE.org
The bLoyal: Loyalty & Promotions by bLoyal plugin for WordPress is vulnerable to Privilege Escalation in all versions up to, and including, 3.1.611.78. This is due to the AJAX actions save_bloyal_configuration_data and save_bloyal_accesskeyverification_data being registered without any capability or nonce checks, and the bloyal_customer_auto_login function unconditionally trusting the Customer.ExternalId value returned by whichever API URL is stored in the plugin's options. This makes it possible for authenticated attackers, with Subscriber-level access and above, to overwrite the plugin's bLoyal Loyalty Engine API URL (bloyal_custom_loyaltyengine_api_url) and the is_bloyal_custom_api_url flag via the unprotected AJAX actions, then trigger the unauthenticated /cart REST route to cause bloyal_customer_auto_login to fetch customer data from an attacker-controlled endpoint and call wp_set_auth_cookie() with an attacker-supplied Customer.ExternalId, thereby authenticating as any WordPress user including the site Administrator.
Executive ViewAI
bLoyal: Loyalty & Promotions WordPress plugin contains a privilege escalation vulnerability (CVSS 8.8, all versions through 3.1.611.78) that allows authenticated subscriber-level users to achieve full administrator access. No public exploit code has been identified, but the low barrier to entry and critical impact create significant organizational risk, particularly for installations with open registration.
No vendor-released patch identified at time of analysis. Interim mitigations: (1) deactivate bLoyal across all WordPress installations; (2) restrict subscriber-level user account provisioning to pre-approved individuals only and disable open registration; (3) monitor application logs and audit trails for unauthorized attempts to modify loyalty engine API configuration or access protected REST endpoints; (4) implement Web Application Firewall rules to block requests to the vulnerable unprotected AJAX actions if the plugin must temporarily remain active.
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.
EUVD-2026-58841
GHSA-5h38-4j4g-wf4g
NVD
CVE.org
EPSS
VulDB
Exploit-DB