CVE-2024-3945
📋 TL;DR
The WP To Do WordPress plugin has a Cross-Site Request Forgery vulnerability that allows unauthenticated attackers to add new todo items by tricking administrators into clicking malicious links. This affects all versions up to 1.3.0 of the plugin. The vulnerability exists due to missing nonce validation in the wptodo_manage() function.
💻 Affected Systems
- WP To Do WordPress Plugin
📦 What is this software?
Wp To Do by Delower
⚠️ Risk & Real-World Impact
Worst Case
Attackers could flood the WordPress admin interface with malicious todo items, potentially disrupting administrative workflows or using crafted todo items to deliver further attacks.
Likely Case
Attackers add spam or misleading todo items to administrator dashboards, causing confusion or minor disruption.
If Mitigated
With proper CSRF protections and user awareness, the impact is minimal as it requires administrator interaction.
🎯 Exploit Status
Exploitation requires social engineering to trick administrators into clicking malicious links while authenticated. No authentication required to craft the malicious request.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Versions after 1.3.0
Vendor Advisory: https://plugins.trac.wordpress.org/browser/wp-todo/trunk/inc/Base/Model.php#L273
Restart Required: No
Instructions:
1. Log into WordPress admin panel. 2. Navigate to Plugins → Installed Plugins. 3. Find 'WP To Do' plugin. 4. Click 'Update Now' if available. 5. Alternatively, download latest version from WordPress plugin repository and manually update.
🔧 Temporary Workarounds
Temporary Plugin Deactivation
allDeactivate the WP To Do plugin until patched
wp plugin deactivate wp-todo
CSRF Protection via .htaccess
linuxAdd CSRF protection headers at web server level
Header set X-Frame-Options "DENY"
Header set Content-Security-Policy "frame-ancestors 'none'"
🧯 If You Can't Patch
- Implement strict Content Security Policy headers to limit frame embedding
- Educate administrators about phishing risks and require manual review of all todo items
🔍 How to Verify
Check if Vulnerable:
Check WordPress admin → Plugins → Installed Plugins for WP To Do version. If version is 1.3.0 or lower, system is vulnerable.
Check Version:
wp plugin get wp-todo --field=version
Verify Fix Applied:
Verify WP To Do plugin version is higher than 1.3.0 in WordPress admin panel.
📡 Detection & Monitoring
Log Indicators:
- Unusual POST requests to /wp-admin/admin-ajax.php with action=wptodo_manage
- Multiple todo item creations from single IP in short timeframe
Network Indicators:
- HTTP requests with Referer headers pointing to external malicious sites
- CSRF attack patterns in web application firewall logs
SIEM Query:
source="wordpress.log" AND "action=wptodo_manage" AND NOT "_wpnonce="
🔗 References
- https://plugins.trac.wordpress.org/browser/wp-todo/trunk/inc/Base/Model.php#L273
- https://www.wordfence.com/threat-intel/vulnerabilities/id/69475bec-1f27-4793-8697-1132ac701c62?source=cve
- https://plugins.trac.wordpress.org/browser/wp-todo/trunk/inc/Base/Model.php#L273
- https://www.wordfence.com/threat-intel/vulnerabilities/id/69475bec-1f27-4793-8697-1132ac701c62?source=cve