CVE-2024-3947
📋 TL;DR
The WP To Do WordPress plugin has a Cross-Site Request Forgery vulnerability that allows attackers to modify plugin settings without authentication. Attackers can trick administrators into clicking malicious links to exploit this. All WordPress sites using WP To Do plugin versions up to 1.3.0 are affected.
💻 Affected Systems
- WP To Do WordPress Plugin
📦 What is this software?
Wp To Do by Delower
⚠️ Risk & Real-World Impact
Worst Case
Attackers could modify plugin settings to disrupt functionality, inject malicious content, or create backdoors for further attacks.
Likely Case
Attackers change plugin settings to disable features, modify behavior, or prepare for follow-up attacks.
If Mitigated
With proper CSRF protections, no impact as requests would be rejected without valid nonces.
🎯 Exploit Status
Exploitation requires social engineering to trick administrators into clicking malicious links. No authentication needed for the CSRF attack itself.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: 1.3.1 or later
Vendor Advisory: https://plugins.trac.wordpress.org/browser/wp-todo/trunk/inc/Base/Model.php
Restart Required: No
Instructions:
1. Log into WordPress admin panel. 2. Go to Plugins → Installed Plugins. 3. Find WP To Do plugin. 4. Click 'Update Now' if available. 5. Alternatively, download latest version from WordPress repository and replace plugin files.
🔧 Temporary Workarounds
Disable WP To Do Plugin
allTemporarily disable the vulnerable plugin until patched
wp plugin deactivate wp-todo
Add CSRF Protection Manually
allAdd nonce validation to wptodo_settings() function in plugin code
🧯 If You Can't Patch
- Restrict administrator access to trusted networks only
- Implement web application firewall with CSRF protection rules
🔍 How to Verify
Check if Vulnerable:
Check WP To Do plugin version in WordPress admin panel under Plugins → Installed Plugins
Check Version:
wp plugin get wp-todo --field=version
Verify Fix Applied:
Verify plugin version is 1.3.1 or higher after update
📡 Detection & Monitoring
Log Indicators:
- Unusual POST requests to wp-admin/admin-post.php with wptodo_settings action
- Multiple failed CSRF validation attempts
Network Indicators:
- HTTP requests with wptodo_settings parameter from unexpected sources
- Cross-origin requests to admin endpoints
SIEM Query:
source="wordpress" action="wptodo_settings" AND NOT referer CONTAINS "same-domain"
🔗 References
- https://plugins.trac.wordpress.org/browser/wp-todo/trunk/inc/Base/Model.php#L304
- https://www.wordfence.com/threat-intel/vulnerabilities/id/c132cfc1-03b3-4616-9a66-871e88c857cb?source=cve
- https://plugins.trac.wordpress.org/browser/wp-todo/trunk/inc/Base/Model.php#L304
- https://www.wordfence.com/threat-intel/vulnerabilities/id/c132cfc1-03b3-4616-9a66-871e88c857cb?source=cve