CVE-2024-43117
Executive Summary
CVE-2024-43117 is a Cross-Site Request Forgery (CSRF) vulnerability in the WPMU DEV Hummingbird plugin for WordPress, affecting versions up to and including 3.9.1. This vulnerability allows an attacker to perform unauthorized actions on behalf of an authenticated administrator, such as modifying plugin settings or triggering cache purges, without the victim's consent. The attack requires social engineering to trick an admin into clicking a malicious link or visiting a crafted page while logged into WordPress. The CVSS score is 4.3 (Medium), with low impact on integrity but no direct impact on confidentiality or availability. No public exploit code or proof-of-concept is currently available, and the patch status is unknown.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Supply Chain & Package Security
This vulnerability affects the WordPress plugin ecosystem. The Hummingbird plugin is distributed via the official WordPress plugin repository and WPMU DEV's own platform. Users should verify the integrity of their plugin files and ensure they are obtained from trusted sources. No known supply chain compromise has been reported for this CVE.
CVSS Breakdown & Threat Level
- CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N
- Base Score: 4.3 (Medium)
- Attack Vector: Network (AV:N) – The attack can be launched remotely.
- Attack Complexity: Low (AC:L) – No special conditions are required.
- Privileges Required: None (PR:N) – The attacker does not need prior authentication.
- User Interaction: Required (UI:R) – The victim must perform an action (e.g., click a link).
- Scope: Unchanged (S:U) – The vulnerability does not affect other components.
- Confidentiality Impact: None (C:N) – No data exposure.
- Integrity Impact: Low (I:L) – Unauthorized modification of plugin settings is possible.
- Availability Impact: None (A:N) – No denial of service.
Threat Level: Medium. The requirement for user interaction reduces the likelihood of exploitation, but the potential for unauthorized configuration changes (e.g., disabling caching, altering performance settings) could degrade site performance or security.
Deep Dive & Mechanics
The Hummingbird plugin is a performance optimization tool for WordPress, providing caching, minification, and asset management. The CSRF vulnerability exists because the plugin's administrative actions (e.g., clearing cache, updating settings) do not implement proper CSRF tokens or nonces. An attacker can craft a malicious HTML page or email that, when viewed by an authenticated admin, triggers a request to the WordPress admin area (e.g., /wp-admin/admin-ajax.php or a plugin-specific endpoint) to perform an action without the admin's knowledge.
Attack Flow:
- The attacker identifies a target WordPress site running Hummingbird <= 3.9.1.
- The attacker crafts a malicious link or form that submits a request to the vulnerable endpoint (e.g.,
wp-admin/admin-ajax.php?action=hummingbird_clear_cache). - The attacker lures an authenticated admin to click the link or visit a page containing the crafted form.
- The admin's browser sends the request with their session cookies, and the server processes it as legitimate.
- The attacker can clear caches, disable caching, or modify other settings, potentially degrading site performance or enabling further attacks.
Root Cause: Lack of CSRF protection (nonce verification) on sensitive administrative actions within the plugin.
Vulnerable vs. Patched Code
Since no official patch is available, the following is a hypothetical fix based on standard WordPress CSRF mitigation.
Vulnerable Code (Example):
// In a hypothetical admin-ajax handler
add_action('wp_ajax_hummingbird_clear_cache', 'hummingbird_clear_cache');
function hummingbird_clear_cache() {
// No nonce check
// Clear cache logic
wp_cache_flush();
wp_die('Cache cleared');
}
Patched Code (Example):
add_action('wp_ajax_hummingbird_clear_cache', 'hummingbird_clear_cache');
function hummingbird_clear_cache() {
// Verify nonce
if (!isset($_POST['_wpnonce']) || !wp_verify_nonce($_POST['_wpnonce'], 'hummingbird_clear_cache_nonce')) {
wp_die('CSRF validation failed', 403);
}
// Clear cache logic
wp_cache_flush();
wp_die('Cache cleared');
}
The patched version adds a nonce check using wp_verify_nonce() to ensure the request originated from the admin's session.
Exploitation & Lab Setup
Red Team (Attacker)
Prerequisites:
- A WordPress site with Hummingbird <= 3.9.1 and an authenticated admin session.
- Ability to host a malicious HTML page or send a crafted email.
Exploitation Steps:
- Identify the vulnerable endpoint. Common actions include:
admin-ajax.php?action=hummingbird_clear_cacheadmin-post.php?action=hummingbird_save_settings
- Create a malicious HTML page that auto-submits a form:
<html> <body> <form action="http://target-site.com/wp-admin/admin-ajax.php" method="POST" id="csrf_form"> <input type="hidden" name="action" value="hummingbird_clear_cache"> </form> <script>document.getElementById('csrf_form').submit();</script> </body> </html> - Host the page on an attacker-controlled server or send it as an HTML email.
- Lure the admin to visit the page. The request will be sent with their cookies, clearing the cache.
Note: No public exploit code is available; this is a conceptual demonstration.
Blue Team (Defender)
Detection & Prevention:
- Monitor for unusual spikes in cache clearing or configuration changes.
- Implement Web Application Firewall (WAF) rules to block requests to
admin-ajax.phpwithout a valid nonce. - Educate administrators about phishing attacks and the importance of verifying URLs.
- Use WordPress security plugins that add CSRF protection.
Lab Setup for Testing:
- Install WordPress and Hummingbird plugin version 3.9.1.
- Log in as an administrator.
- Create a test page with the malicious form above.
- Visit the test page and observe the cache clearing action.
- Verify that no nonce is required.
Indicators of Compromise (IOCs)
- Network: HTTP requests to
/wp-admin/admin-ajax.phpwithaction=hummingbird_*parameters from unexpected referrers. - Logs: WordPress debug logs showing cache clearing actions without corresponding admin UI interactions.
- File: Unusual modifications to the
wp-content/plugins/hummingbird-performance/directory (e.g., altered settings files). - Behavior: Sudden changes in site performance (e.g., cache disabled, minification turned off).
Detection Engineering
YARA Rule
rule detect_hummingbird_csrf_exploit {
meta:
description = "Detects CSRF exploit attempts against Hummingbird plugin"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2024-43117"
strings:
$action1 = "hummingbird_clear_cache" ascii wide nocase
$action2 = "hummingbird_save_settings" ascii wide nocase
$action3 = "hummingbird_purge_all" ascii wide nocase
$referer = "Referer:" ascii wide nocase
condition:
any of ($action*) and #referer > 0
}
Sigma Rule
title: Hummingbird CSRF Exploit Attempt
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects HTTP requests targeting Hummingbird admin actions without proper CSRF tokens
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'POST'
cs-uri-query|contains: 'action=hummingbird_'
condition: selection
falsepositives:
- Legitimate admin actions from the WordPress dashboard
level: medium
Suricata Rule
alert http any any -> any any (msg:"CVE-2024-43117 Hummingbird CSRF Attempt"; flow:to_server,established; content:"POST"; http_method; content:"action=hummingbird_"; http_uri; nocase; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Update the plugin: If a patched version becomes available, update immediately. Currently, no patch exists.
- Disable the plugin: Temporarily deactivate Hummingbird until a fix is released.
- Implement CSRF tokens: Add nonce verification to all admin actions (see patched code example).
- Use a Web Application Firewall (WAF): Block requests to
admin-ajax.phpthat lack a valid nonce.
Long-term Measures:
- Regularly update all WordPress plugins and themes.
- Enforce strong authentication and session management.
- Conduct security audits of custom code and third-party plugins.
- Educate users on phishing and social engineering risks.
Workaround:
- Restrict access to
wp-admin/directory via.htaccessor IP whitelisting. - Use a security plugin like Wordfence or Sucuri to add CSRF protection.
Valters IT
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.