CVE-2025-49872 Overview
CVE-2025-49872 is a Missing Authorization vulnerability [CWE-862] in the Saad Iqbal myCred plugin for WordPress. The flaw affects all versions up to and including 2.9.4.2. The plugin exposes functionality that is not properly constrained by access control lists (ACLs), allowing unauthenticated network attackers to interact with restricted operations. Successful exploitation results in limited integrity impact on the affected WordPress site. The issue was published on June 17, 2025 and tracked via Patchstack.
Critical Impact
Unauthenticated attackers can access plugin functionality that should require authorization, enabling tampering with myCred point balances, rewards, or related data on affected WordPress sites.
Affected Products
- myCred plugin for WordPress, versions n/a through 2.9.4.2
- WordPress sites running the affected plugin versions
- Publisher: Saad Iqbal
Discovery Timeline
- 2025-06-17 - CVE-2025-49872 published to the National Vulnerability Database
- 2026-06-17 - Last updated in NVD database
Technical Details for CVE-2025-49872
Vulnerability Analysis
The myCred plugin implements a points and rewards management system for WordPress. One or more of its request handlers fail to enforce capability or nonce checks before executing privileged actions. Because the vulnerable endpoints are reachable over the network without authentication and without user interaction, attackers can invoke them directly by crafting HTTP requests to the WordPress site. The vulnerability produces low integrity impact, with no direct effect on confidentiality or availability.
Root Cause
The root cause is broken access control in server-side request handlers. The plugin registers actions or AJAX endpoints without validating that the caller has the required WordPress capability, such as manage_options or an equivalent role check. Missing current_user_can() verification and absent check_ajax_referer() or wp_verify_nonce() calls allow anonymous requests to reach code paths intended for privileged users.
Attack Vector
An attacker sends crafted HTTP requests to the vulnerable myCred endpoint on a WordPress site running version 2.9.4.2 or earlier. No credentials, tokens, or user interaction are required. The attacker abuses the exposed functionality to modify plugin state, such as point balances or reward configurations, producing an integrity impact on the site.
Verified proof-of-concept code is not published. Refer to the Patchstack MyCred Vulnerability Advisory for technical detail on the affected endpoints.
Detection Methods for CVE-2025-49872
Indicators of Compromise
- Unauthenticated HTTP POST requests to /wp-admin/admin-ajax.php referencing myCred actions from unexpected IP addresses.
- Unexpected modifications to myCred point balances, log entries, or reward configurations in the WordPress database.
- Web server access logs showing repeated requests to myCred-related endpoints without an authenticated session cookie.
Detection Strategies
- Audit WordPress database tables used by myCred, including mycred_log and user meta keys prefixed with mycred_, for entries that lack a corresponding administrative action.
- Inspect web server logs for HTTP requests targeting myCred AJAX actions issued without a valid wordpress_logged_in_* cookie.
- Correlate WordPress user activity with plugin state changes to identify modifications performed outside authorized sessions.
Monitoring Recommendations
- Enable WordPress activity logging on plugin state changes and forward events to a centralized SIEM for correlation.
- Set alerts on anomalous request volume against admin-ajax.php with myCred action parameters.
- Track file integrity on the wp-content/plugins/mycred/ directory to identify version drift or unauthorized modification.
How to Mitigate CVE-2025-49872
Immediate Actions Required
- Update the myCred plugin to a version later than 2.9.4.2 as soon as a fixed release is available from the vendor.
- Restrict access to /wp-admin/ and /wp-admin/admin-ajax.php via a web application firewall rule where feasible.
- Review myCred logs and reverse unauthorized point or reward adjustments made since deployment of the affected version.
Patch Information
Consult the Patchstack MyCred Vulnerability Advisory for the fixed version and upgrade instructions. Apply the update through the WordPress plugin manager or by replacing the plugin files with the patched release.
Workarounds
- Deploy a WAF rule to block unauthenticated requests to myCred AJAX actions until the plugin is upgraded.
- Temporarily deactivate the myCred plugin if the exposed functionality is not essential to site operation.
- Limit access to WordPress administrative endpoints by IP allowlist at the reverse proxy or web server layer.
# Example nginx snippet restricting admin-ajax.php to known IPs
location = /wp-admin/admin-ajax.php {
allow 203.0.113.0/24;
deny all;
include fastcgi_params;
fastcgi_pass unix:/run/php/php-fpm.sock;
}
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

