CVE-2024-2343
Executive Summary
CVE-2024-2343 is a Server-Side Request Forgery (SSRF) vulnerability in the Avada | Website Builder For WordPress & WooCommerce theme for WordPress. This flaw exists in all versions up to and including 7.11.6, specifically within the form_to_url_action function. An authenticated attacker with contributor-level access or higher can exploit this to make arbitrary HTTP requests from the web server, potentially reaching internal services that are not exposed to the public internet. This can lead to information disclosure, internal network scanning, and in some cases, modification of data on internal services. The vulnerability is classified as a WordPress ecosystem issue, as it resides within the theme's codebase and does not involve the underlying web server (Apache/Nginx).
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 is not in a package manager (NPM, PyPI, Go, Ruby) but in a WordPress theme distributed via the official WordPress theme repository and commercial channels. The supply chain risk is moderate: users who have installed the Avada theme from any source are affected. The theme is a commercial product, and patches are typically distributed through the theme's update mechanism. No official patch has been confirmed at this time.
CVSS Breakdown & Threat Level
- CVSS Score: 6.4 (Medium)
- Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
- Attack Vector: Network
- Attack Complexity: Low
- Privileges Required: Low (Contributor-level access)
- User Interaction: None
- Scope: Changed (impact on resources beyond the vulnerable component)
- Confidentiality Impact: Low
- Integrity Impact: Low
- Availability Impact: None
Threat Level: Medium. While the CVSS score is moderate, the potential for internal network reconnaissance and data modification makes this a significant concern for organizations using Avada in internal or hybrid environments.
Deep Dive & Mechanics
The vulnerability resides in the form_to_url_action function, which is part of the Avada theme's form builder functionality. This function is designed to send form data to an external URL specified by the user. However, it fails to properly validate or sanitize the target URL, allowing an attacker to specify arbitrary destinations, including internal IP addresses (e.g., http://192.168.1.1/admin) or cloud metadata endpoints (e.g., http://169.254.169.254/latest/meta-data/).
The function likely uses a server-side HTTP client (e.g., wp_remote_get() or curl) to make the request. Without proper restrictions, the attacker can:
- Scan internal network hosts and ports.
- Access internal services (e.g., databases, admin panels, monitoring tools).
- Read sensitive data from cloud metadata services (AWS, GCP, Azure).
- In some cases, modify data if the internal service accepts POST/PUT requests.
The attack is authenticated, requiring at least contributor-level access. This means an attacker must first compromise a low-privileged WordPress account or be a malicious insider.
Vulnerable vs. Patched Code
Since no official patch is available, the vulnerable code is presumed to be in the form_to_url_action function. A patched version would likely include:
- Input validation: Restrict the URL scheme to
httpandhttpsonly. - Host allowlisting: Only allow requests to a predefined list of trusted external domains.
- IP filtering: Block requests to private (RFC 1918), loopback, and link-local addresses.
- Metadata endpoint blocking: Specifically block
169.254.169.254and similar cloud metadata IPs.
Vulnerable code (conceptual):
function form_to_url_action($url, $data) {
$response = wp_remote_post($url, array('body' => $data));
return $response;
}
Patched code (conceptual):
function form_to_url_action($url, $data) {
$allowed_hosts = array('api.example.com', 'webhook.example.com');
$parsed_url = parse_url($url);
if (!in_array($parsed_url['host'], $allowed_hosts)) {
return new WP_Error('invalid_url', 'URL not allowed');
}
$response = wp_remote_post($url, array('body' => $data));
return $response;
}
Exploitation & Lab Setup
Red Team
Prerequisites:
- A WordPress site running Avada <= 7.11.6.
- A user account with contributor-level privileges or higher.
- An internal service to target (e.g., a local Redis instance on port 6379).
Exploitation Steps:
- Log in to WordPress as a contributor.
- Navigate to the Avada form builder (e.g.,
/wp-admin/admin.php?page=avada_form_builder). - Create or edit a form that uses the "Send to URL" action.
- In the URL field, enter the internal target, e.g.,
http://127.0.0.1:6379/orhttp://169.254.169.254/latest/meta-data/. - Submit the form. The server will make a request to the internal service.
- Observe the response (if reflected) or use out-of-band techniques (e.g., DNS exfiltration) to capture data.
Example payload for internal scanning:
http://192.168.1.100:8080/admin
Example payload for cloud metadata:
http://169.254.169.254/latest/meta-data/iam/security-credentials/admin
Blue Team
Detection:
- Monitor outbound HTTP requests from the web server to unexpected internal IPs.
- Look for requests to
169.254.169.254,127.0.0.1, or RFC 1918 addresses. - Alert on form submissions where the target URL contains internal IPs or unusual hostnames.
Prevention:
- Implement a Web Application Firewall (WAF) rule to block requests containing internal IPs in form fields.
- Use a network firewall to restrict outbound traffic from the web server to only necessary external services.
- Apply the principle of least privilege: limit contributor-level access to trusted users only.
Hunting:
- Search web server logs for requests to
169.254.169.254or127.0.0.1. - Review Avada form submissions for suspicious URLs.
- Check for unusual outbound connections from the WordPress server.
Indicators of Compromise (IOCs)
- Network IOCs:
- Outbound HTTP requests to
169.254.169.254(AWS/GCP/Azure metadata). - Outbound HTTP requests to
127.0.0.1,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16. - Requests to internal service ports (e.g.,
:6379,:3306,:27017).
- Outbound HTTP requests to
- File IOCs:
- Modified Avada theme files (specifically
form_to_url_actionfunction). - Suspicious entries in WordPress
wp_optionstable related to form actions.
- Modified Avada theme files (specifically
- Log IOCs:
- Web server access logs showing
POSTrequests to/wp-admin/admin-ajax.phpwith parameters containing internal IPs. - PHP error logs indicating failed connections to internal hosts.
- Web server access logs showing
Detection Engineering
YARA Rule
rule CVE_2024_2343_Avada_SSRF {
meta:
description = "Detects Avada theme files vulnerable to SSRF (CVE-2024-2343)"
author = "Valters IT"
date = "2024-01-01"
reference = "https://nvd.nist.gov/vuln/detail/CVE-2024-2343"
strings:
$func = "form_to_url_action"
$wp_remote = "wp_remote_post" nocase
$wp_remote_get = "wp_remote_get" nocase
$curl = "curl_init" nocase
condition:
$func and ($wp_remote or $wp_remote_get or $curl)
}
Sigma Rule
title: CVE-2024-2343 Avada SSRF Exploitation Attempt
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects attempts to exploit SSRF in Avada theme by targeting internal IPs
author: Valters IT
date: 2024-01-01
logsource:
category: webserver
product: apache
service: access
detection:
selection:
cs-method: 'POST'
c-uri|contains: '/wp-admin/admin-ajax.php'
cs-uri-query|contains: 'action=form_to_url_action'
cs-uri-query|contains:
- '169.254.169.254'
- '127.0.0.1'
- '10.'
- '172.16.'
- '192.168.'
condition: selection
falsepositives:
- Legitimate use of internal services (rare)
level: high
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2024-2343 Avada SSRF Exploitation Attempt"; flow:to_server,established; content:"POST"; http_method; content:"/wp-admin/admin-ajax.php"; http_uri; content:"action=form_to_url_action"; http_client_body; pcre:"/(169\.254\.169\.254|127\.0\.0\.1|10\.\d{1,3}\.\d{1,3}\.\d{1,3}|172\.(1[6-9]|2[0-9]|3[0-1])\.\d{1,3}\.\d{1,3}|192\.168\.\d{1,3}\.\d{1,3})/"; classtype:attempted-recon; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Update Avada: Check for a patched version (7.11.7 or later) and apply immediately.
- Disable Form-to-URL Action: If patching is not possible, disable the "Send to URL" form action via a custom plugin or code snippet.
- Restrict Contributor Access: Review and limit contributor-level accounts to only trusted users.
Long-term Mitigations:
- Network Segmentation: Ensure the WordPress server cannot reach sensitive internal services.
- Web Application Firewall (WAF): Deploy rules to block SSRF attempts.
- Monitoring: Implement logging and alerting for outbound requests to internal IPs.
- Code Review: If you have access to the theme source, audit the
form_to_url_actionfunction and apply input validation.
Workaround (if patching is delayed):
Add the following code to your theme's functions.php or a custom plugin to block internal requests:
add_filter('avada_form_to_url_action_url', function($url) {
$blocked_ips = array('127.0.0.1', '169.254.169.254', '10.0.0.0/8', '172.16.0.0/12', '192.168.0.0/16');
$host = parse_url($url, PHP_URL_HOST);
foreach ($blocked_ips as $ip) {
if (strpos($ip, '/') !== false) {
// CIDR check (simplified)
if (ip_in_cidr($host, $ip)) {
return false;
}
} else {
if ($host === $ip) {
return false;
}
}
}
return $url;
});
Valters IT
Securing Digital Frontiers
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.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.