CVE-2024-3945

4.3 MEDIUM

📋 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

Products:
  • WP To Do WordPress Plugin
Versions: All versions up to and including 1.3.0
Operating Systems: Any OS running WordPress
Default Config Vulnerable: ⚠️ Yes
Notes: Requires WordPress installation with WP To Do plugin enabled. Vulnerability only exploitable when administrators are logged in and can be tricked into clicking malicious links.

📦 What is this software?

⚠️ 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.

🌐 Internet-Facing: MEDIUM
🏢 Internal Only: LOW

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

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

all

Deactivate the WP To Do plugin until patched

wp plugin deactivate wp-todo

CSRF Protection via .htaccess

linux

Add 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

📤 Share & Export