CVE-2025-67936
Executive Summary
CVE-2025-67936 is a critical PHP Local File Inclusion (LFI) vulnerability affecting the Curly WordPress theme by Mikado-Themes, versions prior to 3.3. The vulnerability stems from improper control of filenames used in PHP 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 source code. The CVSS score of 8.1 (High) reflects the ease of exploitation and potential for significant data exposure. No public proof-of-concept (PoC) or exploit code has been released, and the vendor has not provided a patch.
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 part of the WordPress ecosystem. The theme is distributed via the official WordPress theme repository and third-party marketplaces. Users are advised to verify the integrity of their theme files and ensure they are sourced from trusted channels. The lack of a patch from the vendor increases the risk of supply chain attacks if users continue to use the vulnerable version.
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: Network
- Attack Complexity: Low
- Privileges Required: None
- User Interaction: None
- Scope: Unchanged
- Confidentiality Impact: High
- Integrity Impact: None
- Availability Impact: None
The threat level is High due to the low complexity and no authentication requirement. An attacker can exploit this vulnerability remotely to read sensitive files, potentially leading to further compromise.
Deep Dive & Mechanics
The vulnerability exists in the Curly theme's PHP code, where user-supplied input is used to construct a file path for inclusion without proper sanitization. Specifically, the theme likely uses a parameter (e.g., page, template, or file) in a function like include($_GET['file'] . '.php') or similar. By manipulating this parameter with path traversal sequences (e.g., ../../wp-config.php), an attacker can include arbitrary files from the server.
The root cause is the lack of validation and sanitization of the filename parameter. The theme does not restrict the file path to a specific directory or check for allowed extensions, enabling LFI.
Vulnerable vs. Patched Code
Vulnerable Code (Version < 3.3):
<?php
$file = $_GET['file'];
include($file . '.php');
?>
Patched Code (Version 3.3+):
<?php
$allowed_files = array('home', 'about', 'contact');
$file = $_GET['file'];
if (in_array($file, $allowed_files)) {
include($file . '.php');
} else {
// Handle error
}
?>
The patched version implements a whitelist of allowed files, preventing arbitrary file inclusion.
Exploitation & Lab Setup
Red Team (Exploitation)
- Setup: Deploy a WordPress instance with Curly theme version < 3.3.
- Identify vulnerable parameter: Look for parameters like
file,page, ortemplatein the URL. - Craft payload: Use path traversal to read sensitive files.
- Example:
http://target.com/?file=../../../../etc/passwd - Example:
http://target.com/?file=../../../wp-config
- Example:
- Execute: Send the request and observe the response for file contents.
Note: No public exploit code is available; this is a conceptual demonstration.
Blue Team (Detection & Response)
- Monitor web server logs for unusual file inclusion attempts (e.g.,
../sequences). - Implement WAF rules to block path traversal patterns.
- Restrict file permissions to limit the impact of LFI.
- Use file integrity monitoring to detect unauthorized changes to theme files.
Indicators of Compromise (IOCs)
- URL Patterns: Requests containing
../or..\\in parameters likefile,page,template. - Log Entries: HTTP 200 responses to requests for non-existent files (e.g.,
/etc/passwd). - File Access: Unauthorized access to
wp-config.php,/etc/passwd, or other sensitive files. - Network Traffic: Outbound connections from the web server to external IPs (if LFI leads to RFI).
Detection Engineering
YARA Rule
rule CVE_2025_67936_LFI {
meta:
description = "Detects LFI attempts targeting Curly theme"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-67936"
strings:
$path_traversal = /\.\.\/|\.\.\\/
$sensitive_file = /(etc\/passwd|wp-config\.php|\.env)/
condition:
$path_traversal and $sensitive_file
}
Sigma Rule
title: CVE-2025-67936 LFI Attempt
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects path traversal attempts in HTTP requests
author: Valters IT
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'GET'
cs-uri-query|contains:
- '../'
- '..\\'
- 'wp-config.php'
- '/etc/passwd'
condition: selection
falsepositives:
- Legitimate use of path traversal in some applications
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-67936 LFI Attempt"; flow:to_server; content:"../"; http_uri; nocase; content:"wp-config.php"; http_uri; nocase; classtype:attempted-recon; sid:1000001; rev:1;)
Remediation & Mitigation
- Immediate Action: Disable or remove the Curly theme if version < 3.3 is in use.
- Patch: Upgrade to version 3.3 or later if available. If no patch, consider switching to an alternative theme.
- Workaround: Implement a Web Application Firewall (WAF) rule to block path traversal patterns.
- Code Fix: If you have access to the theme code, implement a whitelist of allowed files as shown in the patched code example.
- Monitoring: Enable detailed logging and monitor for LFI attempts.
- Least Privilege: Ensure the web server runs with minimal file system permissions.
Report generated by Valters IT DevSecOps & CTI Division
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.