CVE-2025-58206
Executive Summary
CVE-2025-58206 is a critical PHP Local File Inclusion (LFI) vulnerability discovered in the ThemeMove MaxCoach WordPress theme, affecting versions up to and including 3.2.5. 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 (e.g., /etc/passwd, database credentials), remote code execution (if log files or uploads are poisoned), and full server compromise. The CVSS score of 8.1 reflects the high impact and low complexity of exploitation. No public proof-of-concept or patch is currently available, making this a high-priority zero-day for WordPress site administrators.
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 commercial WordPress theme distributed via ThemeMove and third-party marketplaces. Since WordPress themes are part of the site's supply chain, any site running MaxCoach <= 3.2.5 is at risk. The lack of a patch means users must rely on manual mitigation or temporary 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:H/A:H
- 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 cross trust boundaries.
- Confidentiality Impact: High (C:H) – full file read.
- Integrity Impact: High (I:H) – potential for code execution.
- Availability Impact: High (A:H) – could lead to denial of service or full compromise.
Threat Level: Critical. The combination of unauthenticated access, low complexity, and high impact makes this a prime target for automated scanning and exploitation.
Deep Dive & Mechanics
The vulnerability exists in the MaxCoach theme's PHP code, likely within a custom template or shortcode handler that processes user-supplied input (e.g., via $_GET, $_POST, or $_REQUEST) to construct a file path for inclusion. The code fails to sanitize or validate the input, allowing path traversal sequences like ../../ to escape the intended directory.
Example vulnerable code pattern:
$file = $_GET['file'];
include( $file . '.php' );
An attacker can request:
http://target.com/wp-content/themes/maxcoach/some-page.php?file=../../../../etc/passwd%00
The null byte (%00) may be used to truncate the .php extension in older PHP versions, or the attacker can include files without the extension if the code does not append one.
WordPress Context: Since this is a WordPress theme, the vulnerable file is likely loaded via WordPress's template hierarchy or a custom page template. The attacker does not need to be logged in, as the theme's front-end functionality is publicly accessible.
Vulnerable vs. Patched Code
Vulnerable Code (MaxCoach <= 3.2.5):
// In a template file like maxcoach/template-parts/content.php
$include_file = $_GET['view'];
if ( ! empty( $include_file ) ) {
include( get_template_directory() . '/includes/' . $include_file . '.php' );
}
This directly concatenates user input into the include path without sanitization.
Patched Code (Hypothetical):
$allowed_files = array( 'default', 'grid', 'list' );
$include_file = $_GET['view'];
if ( in_array( $include_file, $allowed_files, true ) ) {
include( get_template_directory() . '/includes/' . $include_file . '.php' );
} else {
// Fallback to default
include( get_template_directory() . '/includes/default.php' );
}
The patched version uses a whitelist to restrict allowed filenames, preventing path traversal.
Exploitation & Lab Setup
Red Team (Offensive)
Lab Setup:
- Install WordPress with MaxCoach theme version 3.2.5.
- Ensure the vulnerable endpoint is accessible (e.g., via a custom page template).
Exploitation Steps:
- Identify the vulnerable parameter (e.g.,
view,file,template). - Use path traversal to read sensitive files:
http://target.com/wp-content/themes/maxcoach/template-parts/content.php?view=../../../../etc/passwd%00 - For RCE, attempt log poisoning:
- Inject PHP code into server logs (e.g., via User-Agent header).
- Include the log file:
http://target.com/wp-content/themes/maxcoach/template-parts/content.php?view=../../../../var/log/apache2/access.log%00
- Alternatively, include WordPress's
wp-config.phpto extract database credentials.
No public exploit code is available for this CVE.
Blue Team (Defensive)
Detection:
- Monitor web server logs for path traversal patterns (e.g.,
../,%2e%2e/,%00). - Look for requests to theme files with unexpected parameters.
- Use WAF rules to block
../and null bytes in query strings.
Mitigation:
- Immediately disable or remove the MaxCoach theme if no patch is available.
- Implement a Web Application Firewall (WAF) with virtual patching.
- Restrict file inclusion to a whitelist of allowed files.
- Upgrade PHP to a version that rejects null bytes in paths (PHP 5.3.4+).
Indicators of Compromise (IOCs)
Network IOCs:
- HTTP requests containing
../or%2e%2e/in query parameters. - Requests to
wp-content/themes/maxcoach/with suspicious parameters. - Outbound connections from the web server to unknown IPs (if RCE achieved).
- HTTP requests containing
File System IOCs:
- Unexpected files in
/tmp/or web-accessible directories. - Modified
.htaccessfiles. - Presence of webshells (e.g.,
cmd.php,shell.php).
- Unexpected files in
Log IOCs:
- Web server logs showing
404for non-existent files after traversal. - PHP error logs with
include()failures.
- Web server logs showing
Detection Engineering
YARA Rule
rule CVE_2025_58206_MaxCoach_LFI {
meta:
description = "Detects attempts to exploit CVE-2025-58206 in MaxCoach theme"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-58206"
strings:
$path_traversal = /(\.\.\/|%2e%2e\/|%252e%252e\/)/
$theme_path = /wp-content\/themes\/maxcoach/
$include_param = /(\?|&)(view|file|template)=/
condition:
$theme_path and $include_param and $path_traversal
}
Sigma Rule
title: CVE-2025-58206 MaxCoach LFI Attempt
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects path traversal attempts targeting the MaxCoach WordPress theme
author: Valters IT
logsource:
category: webserver
product: apache
detection:
selection:
cs-uri-query|contains:
- '../'
- '%2e%2e/'
- '%252e%252e/'
cs-uri-stem|contains: '/wp-content/themes/maxcoach/'
condition: selection
falsepositives:
- Legitimate use of relative paths in theme files (rare)
level: high
Suricata Rule
alert http any any -> any any (
msg:"CVE-2025-58206 MaxCoach LFI Attempt";
flow:to_server,established;
content:"/wp-content/themes/maxcoach/"; http_uri;
content:"../"; http_uri;
classtype:attempted-admin;
sid:10000001;
rev:1;
)
Remediation & Mitigation
- Immediate Action: Disable or remove the MaxCoach theme from all WordPress installations until a patch is released.
- Virtual Patching: Deploy WAF rules to block path traversal patterns and null bytes.
- Code Hardening: If you have access to the source code, implement a whitelist of allowed include files.
- Monitoring: Enable detailed logging and alert on suspicious requests to theme files.
- Update: Monitor ThemeMove's official channels for a patched version (expected > 3.2.5).
- Backup: Ensure recent backups are available in case of compromise.
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.