Skip to main content

bLoyal WordPress Plugin CVE-2026-15001

| EUVDEUVD-2026-58841 HIGH
Improper Privilege Management (CWE-269)
2026-08-15 Wordfence GHSA-5h38-4j4g-wf4g
8.8
CVSS 3.1 · Vendor: Wordfence
View

Attack ChainAIDerived

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

  1. Recon
    Obtain or register subscriber-level WordPress account
  2. Delivery
    POST to save_bloyal_configuration_data AJAX action without capability check
  3. Exploit
    Overwrite bloyal_custom_loyaltyengine_api_url with attacker-controlled server
  4. Install
    Send unauthenticated GET to /cart REST endpoint
  5. C2
    Plugin calls bloyal_customer_auto_login fetching from attacker server
  6. Execute
    Attacker server returns target admin's WordPress user ID as Customer.ExternalId
  7. Impact
    wp_set_auth_cookie() called with admin ID
  8. Step 8
    Full 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.4% 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 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

bLoyal: Loyalty & Promotions by bLoyal 0 ≤3.1.611.78

Affected Packages

euvd bloyal_loyalty_promotions_by_bloyal 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) 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

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

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.

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:N/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 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

Why It Matters

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.

Business Impact: High
Compensating Controls

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

EPSS Score
0.4%
Top 68% exploitable
Prevalence
Low
niche WordPress loyalty plugin, limited enterprise footprint
Data Quality
5 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.4%
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.

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