CVE-2025-6187 Overview
The bSecure plugin for WordPress contains a critical Privilege Escalation vulnerability caused by missing authorization within its order_info REST endpoint. In versions 1.3.7 through 1.7.9, the plugin registers the /webhook/v2/order_info/ route with a permission_callback that always returns true, effectively bypassing all authentication. This architectural flaw makes it possible for unauthenticated attackers who know any user's email address to obtain a valid login cookie and fully impersonate that account.
Critical Impact
Unauthenticated attackers can completely take over any WordPress user account, including administrators, by simply knowing the target's email address. This enables full site compromise without requiring any authentication.
Affected Products
- bSecure Plugin for WordPress versions 1.3.7 through 1.7.9
- WordPress sites with WooCommerce integration using bSecure checkout
- E-commerce platforms relying on bSecure payment processing
Discovery Timeline
- July 22, 2025 - CVE-2025-6187 published to NVD
- July 22, 2025 - Last updated in NVD database
Technical Details for CVE-2025-6187
Vulnerability Analysis
This vulnerability is classified under CWE-862 (Missing Authorization), representing a fundamental failure in access control implementation. The flaw exists in the bSecure plugin's REST API endpoint registration, where the permission_callback function—designed to enforce authentication requirements—unconditionally returns true for all requests.
When WordPress plugins register REST API routes, they must specify a permission_callback that determines whether an incoming request should be authorized. The bSecure plugin's implementation bypasses this security mechanism entirely, treating every request to the /webhook/v2/order_info/ endpoint as authorized regardless of the requester's authentication status.
The attack surface is particularly dangerous because exploitation only requires knowledge of a target user's email address. Once an attacker submits a request with a valid email, the endpoint returns authentication cookies that grant full session access to that user's account.
Root Cause
The root cause is an improperly implemented permission_callback in the REST API route registration within the class-bsecure-checkout.php file. Rather than validating that the request comes from an authorized source (such as the bSecure payment gateway servers via secret key verification), the callback returns true unconditionally. This design flaw transforms an internal webhook endpoint into a publicly accessible authentication bypass mechanism.
Attack Vector
The attack vector is network-based and requires no authentication or user interaction. An attacker can exploit this vulnerability by:
- Identifying the target WordPress site using the bSecure plugin (versions 1.3.7 - 1.7.9)
- Discovering a valid user email address through reconnaissance, enumeration, or social engineering
- Sending a crafted HTTP request to the /webhook/v2/order_info/ endpoint with the target email
- Receiving valid authentication cookies in the response
- Using the obtained cookies to access the WordPress admin panel or user account with full privileges
The vulnerability affects the network attack vector with low complexity, requiring no privileges and no user interaction. Complete compromise of confidentiality, integrity, and availability is possible when targeting administrator accounts.
Detection Methods for CVE-2025-6187
Indicators of Compromise
- Unusual HTTP requests to /wp-json/webhook/v2/order_info/ from external IP addresses
- Unexpected authentication cookie issuance without corresponding login events
- Access to WordPress admin areas from unfamiliar IP addresses or user agents
- User account activity inconsistent with normal behavior patterns
- Failed login attempts followed by successful session creation without password verification
Detection Strategies
- Monitor web server access logs for requests to the /webhook/v2/order_info/ endpoint, particularly from non-whitelisted IP ranges
- Implement Web Application Firewall (WAF) rules to flag or block unauthenticated requests to bSecure webhook endpoints
- Enable WordPress audit logging to track authentication cookie generation events
- Deploy endpoint detection to identify anomalous WordPress session creation patterns
Monitoring Recommendations
- Configure SIEM alerts for spike in requests to bSecure webhook endpoints
- Establish baseline traffic patterns for legitimate bSecure payment webhook interactions
- Monitor for user account takeover indicators such as password resets or privilege changes following unusual API activity
- Review WordPress user session logs for accounts created without standard authentication flow
How to Mitigate CVE-2025-6187
Immediate Actions Required
- Update the bSecure plugin to a version newer than 1.7.9 that addresses this vulnerability
- Audit WordPress user accounts for signs of unauthorized access or privilege escalation
- Review access logs for any exploitation attempts targeting the vulnerable endpoint
- Force logout all active WordPress sessions and require password resets for sensitive accounts
- Implement IP-based access restrictions for webhook endpoints if upgrade is not immediately possible
Patch Information
Site administrators should update the bSecure plugin through the WordPress admin dashboard or by downloading the latest version from the WordPress bSecure Plugin page. The vulnerable versions (1.3.7 through 1.7.9) should be replaced immediately. Additional technical details about the vulnerable code can be found in the Wordfence Vulnerability Report.
Workarounds
- Temporarily disable the bSecure plugin if updates cannot be applied immediately and alternative payment processing is available
- Implement WAF rules to block unauthenticated access to /wp-json/webhook/v2/order_info/
- Restrict access to WordPress REST API endpoints using server-level configurations
- Add IP whitelisting for webhook endpoints to only allow connections from known bSecure gateway servers
# Apache .htaccess configuration to restrict webhook endpoint access
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/wp-json/webhook/v2/order_info/ [NC]
RewriteCond %{REMOTE_ADDR} !^(BSECURE_GATEWAY_IP)$
RewriteRule .* - [F,L]
</IfModule>
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.


