CVE-2025-69399
Executive Summary
CVE-2025-69399 is a critical PHP Local File Inclusion (LFI) vulnerability discovered in the ThemeREX Cobble WordPress theme, affecting versions up to and including 1.7. The vulnerability stems from improper control of filenames used in include/require statements, allowing an unauthenticated attacker to include arbitrary local files from the server. This can lead to sensitive information disclosure, including configuration files, database credentials, and potentially source code. The CVSS score of 8.1 (High) reflects the ease of exploitation and the high impact on confidentiality. As of this report, no official patch has been released, leaving all sites using the Cobble theme at risk.
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 affects a WordPress theme distributed through ThemeREX and potentially third-party marketplaces. Since WordPress themes are part of the site's supply chain, any site using the Cobble theme is directly impacted. The lack of a patch means site owners must rely on manual mitigation or theme replacement.
CVSS Breakdown & Threat Level
- CVSS Score: 8.1 (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 – The vulnerability can be exploited remotely.
- Attack Complexity (AC): Low – No special conditions are required.
- Privileges Required (PR): None – No authentication needed.
- User Interaction (UI): None – No user action required.
- Scope (S): Unchanged – The vulnerable component remains the same.
- Confidentiality (C): High – Sensitive files can be read.
- Integrity (I): None – No file modification possible.
- Availability (A): None – No denial of service.
Threat Level: High. The vulnerability is easy to exploit and can lead to full disclosure of sensitive server files.
Deep Dive & Mechanics
The vulnerability is a PHP Local File Inclusion (LFI) in the ThemeREX Cobble theme. The theme likely uses a function like include() or require() with a user-controllable parameter (e.g., via GET or POST) without proper sanitization. An attacker can manipulate this parameter to include arbitrary files from the server, such as /etc/passwd, /wp-config.php, or other sensitive files.
Root Cause: The theme fails to validate or sanitize the filename passed to an include/require statement. This allows path traversal sequences (e.g., ../../) to escape the intended directory.
Attack Vector: An unauthenticated attacker sends a crafted HTTP request to a vulnerable endpoint, typically a theme template or AJAX handler, with a file parameter pointing to a local file.
Example vulnerable code pattern:
if (isset($_GET['file'])) {
include($_GET['file']);
}
Vulnerable vs. Patched Code
Since no patch is available, we can only describe the vulnerable code pattern and what a fix would look like.
Vulnerable Code (Cobble <= 1.7):
// In a theme template or function
$file = $_GET['template'];
include( get_template_directory() . '/' . $file . '.php' );
This allows an attacker to use path traversal: ?template=../../../../etc/passwd%00 (null byte injection may work in older PHP versions).
Patched Code (Hypothetical):
$allowed_files = array('header', 'footer', 'sidebar');
$file = $_GET['template'];
if (in_array($file, $allowed_files)) {
include( get_template_directory() . '/' . $file . '.php' );
} else {
// Error handling
}
A proper fix would use a whitelist of allowed files or validate the path against a base directory.
Exploitation & Lab Setup
Red Team (Offensive)
Prerequisites:
- A WordPress site with ThemeREX Cobble theme version <= 1.7.
- Knowledge of a vulnerable endpoint (e.g., a theme template parameter).
Exploitation Steps:
- Identify the vulnerable parameter (e.g.,
file,template,page). - Send a request to include a sensitive file:
GET /?file=../../../../etc/passwd HTTP/1.1 Host: target.com - If successful, the contents of
/etc/passwdwill be displayed.
Example using cURL:
curl -v "http://target.com/?file=../../../../etc/passwd"
Advanced exploitation:
- Use PHP wrappers to read source code:
php://filter/convert.base64-encode/resource=wp-config.php - Attempt to include log files for RCE (if log poisoning is possible).
Blue Team (Defensive)
Detection:
- Monitor web server logs for path traversal patterns (e.g.,
../,%2e%2e%2f). - Look for requests to theme files with suspicious parameters.
- Use WAF rules to block directory traversal attempts.
Mitigation:
- Disable the vulnerable theme immediately.
- Implement a Web Application Firewall (WAF) rule to block
../sequences. - Restrict file inclusion to a whitelist of allowed files.
- Upgrade PHP to a version that disables null byte injection.
Indicators of Compromise (IOCs)
- File Paths:
/etc/passwd,/wp-config.php,/etc/shadow - URL Patterns:
?file=,?template=,?page=followed by../sequences - Log Entries: HTTP requests containing
%2e%2e%2for../in query parameters - PHP Wrapper Usage:
php://filter/,php://input,data://in requests
Detection Engineering
YARA Rule
rule CVE_2025_69399_LFI_Detection {
meta:
description = "Detects LFI attempts targeting ThemeREX Cobble theme"
author = "Valters IT"
date = "2025-01-01"
cve = "CVE-2025-69399"
strings:
$path_traversal = /(\.\.\/|%2e%2e%2f|%252e%252e%252f)/
$php_wrapper = /php:\/\/(filter|input|stdin)/
$sensitive_file = /(etc\/passwd|wp-config\.php|\.env)/
condition:
any of ($path_traversal) and any of ($sensitive_file) or any of ($php_wrapper)
}
Sigma Rule
title: CVE-2025-69399 LFI Attempt
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects LFI attempts against ThemeREX Cobble theme
author: Valters IT
date: 2025/01/01
logsource:
category: webserver
product: apache
service: access
detection:
selection:
cs-method: 'GET'
cs-uri-query|contains:
- '../'
- '%2e%2e%2f'
- 'php://filter'
- 'etc/passwd'
- 'wp-config.php'
condition: selection
falsepositives:
- Legitimate use of path traversal in other contexts (rare)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-69399 LFI Attempt - ThemeREX Cobble"; flow:to_server,established; content:"GET"; http_method; content:"../"; http_uri; content:"etc/passwd"; http_uri; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable the Theme: Switch to a different WordPress theme immediately.
- Apply Virtual Patching: Use a WAF to block path traversal patterns.
- Audit Logs: Check for any signs of exploitation.
Long-term Fix:
- Since no official patch exists, consider forking the theme and applying the fix yourself (whitelist allowed files).
- Monitor ThemeREX for an official update.
- Replace the theme with a more secure alternative.
General Best Practices:
- Never trust user input in file inclusion functions.
- Use a whitelist of allowed files.
- Disable PHP's
allow_url_includeandallow_url_fopenif not needed. - Keep all WordPress components updated.
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.