CVE-2025-10377 Overview
The System Dashboard plugin for WordPress contains a Cross-Site Request Forgery (CSRF) vulnerability [CWE-352] affecting all versions up to and including 2.8.20. The flaw exists in the sd_toggle_logs() function, which lacks nonce validation. Unauthenticated attackers can craft malicious requests to toggle critical logging settings, including Page Access Logs, Error Logs, and Email Delivery Logs. Exploitation requires tricking a site administrator into clicking a link or visiting an attacker-controlled page. The vulnerability was patched in version 2.8.21 through the addition of proper nonce verification.
Critical Impact
Successful exploitation allows attackers to disable or enable logging features on affected WordPress sites, potentially concealing malicious activity or generating noise that hinders incident response.
Affected Products
- WordPress System Dashboard plugin versions up to and including 2.8.20
- WordPress sites with the System Dashboard plugin installed and activated
- Administrator sessions on vulnerable WordPress installations
Discovery Timeline
- 2025-09-26 - CVE-2025-10377 published to NVD
- 2026-06-17 - Last updated in NVD database
Technical Details for CVE-2025-10377
Vulnerability Analysis
The vulnerability resides in the sd_toggle_logs() function within class-system-dashboard-admin.php. This function processes requests to enable or disable logging features but omits WordPress nonce validation. Without nonce verification, the plugin cannot confirm that a state-changing request originated from a legitimate administrator action.
An attacker hosts a malicious page containing a forged request targeting the vulnerable endpoint. When an authenticated administrator visits this page, their browser automatically submits the request using the administrator's active session cookies. The plugin processes the request as legitimate and toggles the targeted logging setting.
The impact is limited to integrity of logging configuration. Attackers cannot directly exfiltrate data or execute code through this flaw. However, disabling Page Access Logs, Error Logs, or Email Delivery Logs can obscure evidence of subsequent attacks or ongoing compromise.
Root Cause
The root cause is missing CSRF token validation in the sd_toggle_logs() handler. WordPress provides the wp_verify_nonce() and check_admin_referer() functions specifically to defend against CSRF, but these were not invoked before processing the toggle action. See the WordPress System Dashboard Code for the vulnerable implementation.
Attack Vector
Exploitation is network-based and requires user interaction from an authenticated administrator. An attacker crafts an HTML page containing an auto-submitting form or image tag pointing at the vulnerable admin endpoint. The attacker then delivers the link via phishing, forum post, or comment on a site the administrator visits while logged in to WordPress. The Wordfence Vulnerability Report provides additional context on the exploitation pattern.
Detection Methods for CVE-2025-10377
Indicators of Compromise
- Unexpected changes to logging configuration state in the System Dashboard plugin settings
- Referer headers from external domains on requests hitting the sd_toggle_logs endpoint
- Administrator browser sessions loading external pages immediately before logging setting changes
- Gaps in Page Access Logs, Error Logs, or Email Delivery Logs that correspond to configuration toggles
Detection Strategies
- Monitor WordPress audit logs for changes to System Dashboard logging options, correlating timestamps with administrator activity
- Inspect web server access logs for POST requests to plugin admin endpoints originating with off-site Referer values
- Alert on administrator sessions performing configuration changes without corresponding admin panel navigation
Monitoring Recommendations
- Enable and centralize WordPress audit logging through a plugin such as WP Activity Log to capture setting changes
- Forward web server logs to a SIEM and build rules for suspicious cross-origin requests to /wp-admin/ endpoints
- Track plugin version inventory across managed WordPress fleets to identify hosts still running System Dashboard 2.8.20 or earlier
How to Mitigate CVE-2025-10377
Immediate Actions Required
- Update the System Dashboard plugin to version 2.8.21 or later on all WordPress installations
- Audit current logging configuration values and restore any unauthorized changes to their expected state
- Review recent administrator activity for evidence of successful CSRF exploitation
- Enforce administrator use of dedicated browsers or sessions when accessing the WordPress admin panel
Patch Information
The vendor released version 2.8.21 with nonce validation added to the sd_toggle_logs() function. Review the fix in the WordPress System Dashboard Changeset. Administrators can update through the WordPress plugin manager or by deploying the updated files directly.
Workarounds
- Deactivate the System Dashboard plugin until the update to 2.8.21 can be applied
- Deploy a web application firewall rule blocking requests to the plugin admin endpoint that lack a same-origin Referer header
- Restrict WordPress admin panel access by IP address through web server or firewall configuration
- Require administrators to log out of WordPress before browsing untrusted sites or opening external links
# Configuration example - update the plugin via WP-CLI
wp plugin update system-dashboard --version=2.8.21
wp plugin list --name=system-dashboard --fields=name,status,version
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

