bLoyal settings overwrite lets Subscribers authenticate as any user
bLoyal through 3.1.611.78 exposes save_bloyal_configuration_data and save_bloyal_accesskeyverification_data without nonce or capability checks. A Subscriber can replace the Loyalty Engine API URL and enable the custom-API flag, then invoke the public /cart REST route; bloyal_customer_auto_login() trusts Customer.ExternalId returned by the attacker endpoint and calls wp_set_auth_cookie() for that WordPress ID. This permits login as any account, including an administrator. The remaining request bodies and API response fields are not disclosed.
- Component
- bLoyal: Loyalty & Promotions by bLoyal
- Plugin slug
bloyal- Affected
- <= 3.1.611.78
- Safe version
- See mitigation notes
- Published
- Aug 15, 2026
This CVE was published Aug 15, 2026 and is one of 1 known issue for this plugin.
Update, patch or deactivate.
No fixed release is identified in the authoritative record. Update when a confirmed patch is available; until then, deactivate bLoyal auto-login when warranted and audit API settings, administrator logins, roles, and sessions.
No confirmed safe version is listed. Consider a vendor-supported patch or temporarily restricting the affected functionality while you assess the risk.
Deactivate only when warranted by your risk profile, or when advised by your hosting provider in the limited circumstances where the vulnerability cannot otherwise be mitigated. If you’re unsure which action is appropriate, contact Fused or your hosting provider for guidance.
Technical description
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.
CVE / CNA vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Primary and upstream sources
- NVD record for CVE-2026-15001
- WordPress upstream reference plugins.trac.wordpress.org
- WordPress upstream reference plugins.trac.wordpress.org
- WordPress upstream reference plugins.trac.wordpress.org
- WordPress upstream reference plugins.trac.wordpress.org
- WordPress upstream reference plugins.trac.wordpress.org
- WordPress upstream reference plugins.trac.wordpress.org
- WordPress upstream reference plugins.trac.wordpress.org
- WordPress upstream reference plugins.trac.wordpress.org
- WordPress upstream reference plugins.trac.wordpress.org
- Wordfence advisory wordfence.com