CVE-2024-3940
📋 TL;DR
This vulnerability allows attackers to trick logged-in WordPress administrators into unknowingly changing the reCAPTCHA Jetpack plugin settings via a Cross-Site Request Forgery (CSRF) attack. It affects WordPress sites using the reCAPTCHA Jetpack plugin version 0.2.2 or earlier. Attackers could exploit this to disable or misconfigure security features like reCAPTCHA, potentially enabling further attacks.
💻 Affected Systems
- reCAPTCHA Jetpack WordPress plugin
📦 What is this software?
⚠️ Risk & Real-World Impact
Worst Case
An attacker could disable reCAPTCHA protection entirely, allowing automated bots to bypass security measures, leading to spam, account takeovers, or other attacks on the WordPress site.
Likely Case
Attackers could modify plugin settings to weaken security, such as reducing reCAPTCHA difficulty, making it easier for bots to bypass and perform malicious activities like form spam.
If Mitigated
If proper CSRF protections are in place, no unauthorized changes can be made, and the plugin functions securely as intended.
🎯 Exploit Status
Exploitation requires social engineering to lure an admin into clicking a malicious link while logged in, but the technical complexity is low once that condition is met.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Check for updates beyond 0.2.2 via the WordPress plugin repository, as the vendor may have released a fix; no specific version is listed in the provided references.
Vendor Advisory: https://wpscan.com/vulnerability/bb0245e5-8e94-4f11-9003-d6208945056c/
Restart Required: No
Instructions:
1. Log into the WordPress admin dashboard. 2. Navigate to Plugins > Installed Plugins. 3. Find 'reCAPTCHA Jetpack' and check for an update button. 4. If available, click 'Update Now' to install the latest version. 5. Verify the update completes successfully.
🔧 Temporary Workarounds
Implement CSRF Tokens Manually
allAdd custom CSRF protection to the plugin's settings update functionality, but this requires coding expertise and may break future updates.
Use a Web Application Firewall (WAF)
allConfigure a WAF to block CSRF attacks by detecting and filtering malicious requests targeting the plugin's settings endpoint.
🧯 If You Can't Patch
- Restrict admin access to trusted networks only to reduce the risk of admin sessions being hijacked.
- Educate administrators about CSRF risks and advise them to log out when not actively managing the site or use browser extensions that block CSRF attempts.
🔍 How to Verify
Check if Vulnerable:
Check the plugin version in WordPress admin under Plugins > Installed Plugins; if it is 0.2.2 or earlier, the site is vulnerable.
Check Version:
In WordPress, you can check via: wp plugin list --name='reCAPTCHA Jetpack' --field=version (requires WP-CLI)
Verify Fix Applied:
After updating, confirm the plugin version is higher than 0.2.2 in the same location and test settings changes to ensure they require proper authentication.
📡 Detection & Monitoring
Log Indicators:
- Look for unexpected POST requests to the plugin's settings update endpoint (e.g., /wp-admin/admin.php?page=recaptcha-jetpack) from unauthorized or suspicious IPs.
Network Indicators:
- Monitor for CSRF attack patterns, such as requests with missing or invalid Referer headers or nonce tokens when accessing plugin settings.
SIEM Query:
Example query for Splunk: index=web_logs sourcetype=access_combined method=POST uri="*recaptcha-jetpack*" | stats count by src_ip