Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
Primary rating from NVD · only source for this CVE.
CVSS VectorNVD
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
Lifecycle Timeline
4DescriptionCVE.org
The WP Statistics plugin for WordPress is vulnerable to Missing Authorization in all versions up to, and including, 14.16.4. This is due to missing capability checks on multiple AJAX handlers including wp_statistics_get_filters, wp_statistics_getPrivacyStatus, wp_statistics_updatePrivacyStatus, and wp_statistics_dismiss_notices. These endpoints only verify a wp_rest nonce via check_ajax_referer() but do not enforce any capability checks such as current_user_can() or the plugin's own User::Access() method. Since the wp_rest nonce is available to all authenticated WordPress users, this makes it possible for authenticated attackers, with Subscriber-level access and above, to access sensitive analytics data (user IDs, usernames, emails, visitor tracking data), retrieve and modify privacy audit compliance status, and dismiss administrative notices.
AnalysisAI
WP Statistics plugin for WordPress versions up to 14.16.4 fail to enforce capability checks on multiple AJAX endpoints, allowing authenticated Subscriber-level users to access sensitive analytics data, retrieve and modify privacy audit status, and dismiss administrative notices. The vulnerability stems from reliance on nonce verification alone without role-based access control, affecting all installations with the plugin active and at least one authenticated user account. No public exploit code or active exploitation has been confirmed at time of analysis.
Technical ContextAI
WP Statistics is a WordPress analytics plugin that stores and manages visitor tracking data, user analytics, and privacy audit logs. The vulnerability exists in four primary AJAX handlers: wp_statistics_get_filters (FilterManager.php line 62), wp_statistics_getPrivacyStatus and wp_statistics_updatePrivacyStatus (PrivacyAuditController.php lines 21 and 41), and wp_statistics_dismiss_notices (class-wp-statistics-admin-ajax.php line 310). These endpoints invoke check_ajax_referer() to verify a wp_rest nonce, which is a WordPress security token distributed to all authenticated users by default. However, they omit subsequent capability checks using current_user_can() or the plugin's custom User::Access() method, which would restrict access to administrators or users with explicit analytics permissions. The CWE-862 (Missing Authorization) classification confirms the root cause: authentication is present but authorization logic is absent. CPE data indicates vulnerability across all version tracks of the plugin up to and including 14.16.4.
RemediationAI
The primary fix is to upgrade WP Statistics to version 14.16.5 or later, which should include added capability checks (current_user_can() or equivalent User::Access() calls) on the four vulnerable AJAX endpoints. Users should update via WordPress Dashboard (Plugins > Installed Plugins > WP Statistics > Update, or via wp-cli: wp plugin update wp-statistics). The Wordfence advisory (https://www.wordfence.com/threat-intel/vulnerabilities/id/b1938ba4-ced7-455b-8772-a192d9cb0897) and WordPress Plugin Trac changeset (revision 3483860 in PrivacyAuditController.php) document the fix. For installations unable to update immediately, a compensating control is to restrict WordPress user roles: manually delete or disable Subscriber accounts not requiring site access, and use a plugin like Members (https://wordpress.org/plugins/members/) to create custom roles with granular capabilities, ensuring analytics access is restricted to Administrators or a designated Analytics Editor role. However, this approach requires active user management and does not prevent privilege escalation if Subscriber credentials are compromised. Another interim mitigation is to install Web Application Firewall (WAF) rules blocking AJAX requests to wp_statistics endpoints from non-admin users, but this requires server-side or third-party WAF support and may interfere with legitimate analytics dashboard use by authorized staff. Network-level restriction (e.g., limiting dashboard access to specific IP ranges) provides partial defense but does not prevent lateral movement by compromised internal users. Patching remains the recommended primary mitigation.
The isMail transport in PHPMailer before 5.2.20 might allow remote attackers to pass extra parameters to the mail comman
The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1
The Hash Form - Drag & Drop Form Builder plugin for WordPress is vulnerable to arbitrary file uploads due to missing fil
The GiveWP - Donation Plugin and Fundraising Platform plugin for WordPress is vulnerable to PHP Object Injection in all
The Simple File List plugin for WordPress through version 4.2.2 contains an unauthenticated remote code execution vulner
The AI Engine WordPress plugin through version 3.1.3 exposes Bearer Token values through the /mcp/v1/ REST API endpoint
The Ninja Forms plugin before 2.9.42.1 for WordPress allows remote attackers to conduct PHP object injection attacks via
The Business Directory Plugin - Easy Listing Directories for WordPress plugin for WordPress is vulnerable to time-based
SQL injection in the NotificationX WordPress plugin (versions up to and including 2.8.2) allows unauthenticated remote a
The POST SMTP Mailer - Email log, Delivery Failure Notifications and Best Mail SMTP for WordPress plugin for WordPress i
The MasterStudy LMS WordPress Plugin - for Online Courses and Education plugin for WordPress is vulnerable to union base
The Country State City Dropdown CF7 plugin for WordPress is vulnerable to SQL Injection via the ‘cnt’ and 'sid' paramete
Same weakness CWE-862 – Missing Authorization
View allSame technique Authentication Bypass
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-23337
GHSA-v77j-mp3m-5c9v