CVE-2025-6796
Executive Summary
CVE-2025-6796 is a critical directory traversal vulnerability in Marvell QConvergeConsole, specifically within the getAppFileBytes method. The flaw allows an unauthenticated remote attacker to read arbitrary files on the underlying system with SYSTEM privileges. With a CVSS score of 7.5 (High), this vulnerability poses a significant risk to confidentiality, as no authentication or user interaction is required. The lack of proper path validation enables traversal outside the intended application directory, potentially exposing sensitive configuration files, credentials, or system data. No public proof-of-concept (PoC) or exploit code has been released, but the technical details from ZDI (ZDI-CAN-24916) confirm the attack vector. No patch is currently available, making immediate mitigation through network segmentation and access controls essential.
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
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: 7.5 (High)
- Attack Vector: Network (AV:N) – Exploitable remotely.
- Attack Complexity: Low (AC:L) – No special conditions required.
- Privileges Required: None (PR:N) – No authentication needed.
- User Interaction: None (UI:N) – No victim action required.
- Scope: Unchanged (S:U) – Vulnerability affects only the vulnerable component.
- Confidentiality Impact: High (C:H) – Full file read capability.
- Integrity Impact: None (I:N) – No file modification.
- Availability Impact: None (A:N) – No denial of service.
Threat Level: High. The combination of remote, unauthenticated access with SYSTEM-level file read makes this a prime target for reconnaissance and credential harvesting.
Deep Dive & Mechanics
The vulnerability resides in the getAppFileBytes method of Marvell QConvergeConsole, a management interface for Marvell (formerly QLogic) Fibre Channel and Ethernet adapters. The method is designed to retrieve application file contents, but it fails to validate user-supplied path parameters. An attacker can supply a path containing ../ sequences to traverse outside the intended application directory.
Technical Flow:
- The attacker sends a crafted HTTP request to the QConvergeConsole web interface, targeting the
getAppFileBytesendpoint. - The request includes a
pathparameter with directory traversal sequences (e.g.,../../../../Windows/System32/config/sam). - The server does not sanitize or canonicalize the path, allowing the attacker to read arbitrary files.
- The file content is returned in the HTTP response, potentially exposing sensitive data.
Impact: An attacker can read system files such as:
- Windows SAM and SYSTEM hives (credential hashes)
- Application configuration files (database passwords, API keys)
- SSL/TLS private keys
- Log files containing sensitive information
Vulnerable vs. Patched Code
Since no patch is available, the vulnerable code pattern is inferred from the CVE description. The fix would involve proper path validation.
Vulnerable Code (Conceptual):
public byte[] getAppFileBytes(String path) {
File file = new File(path);
// No validation – allows traversal
return Files.readAllBytes(file.toPath());
}
Patched Code (Conceptual):
public byte[] getAppFileBytes(String path) {
// Resolve against a safe base directory
Path basePath = Paths.get("/var/qconvergeconsole/data/").normalize();
Path resolvedPath = basePath.resolve(path).normalize();
// Ensure resolved path is still within base directory
if (!resolvedPath.startsWith(basePath)) {
throw new SecurityException("Invalid path");
}
return Files.readAllBytes(resolvedPath);
}
Exploitation & Lab Setup
Red Team (Exploitation)
Prerequisites:
- Target running Marvell QConvergeConsole with the vulnerable
getAppFileBytesendpoint. - Network access to the management interface (typically port 443 or 8443).
Exploitation Steps:
- Identify the endpoint:
GET /api/getAppFileBytes?path=<traversal> - Craft a traversal payload to read a sensitive file:
GET /api/getAppFileBytes?path=../../../../Windows/System32/config/sam HTTP/1.1 Host: target:8443 - Send the request using curl:
curl -k "https://target:8443/api/getAppFileBytes?path=../../../../Windows/System32/config/sam" - The response will contain the file contents (binary or text).
Note: No public exploit code is available; this is a conceptual demonstration.
Blue Team (Detection & Response)
Detection Steps:
- Monitor web server logs for requests containing
../or..%2fin thepathparameter. - Alert on unusual file read patterns (e.g., reading
sam,system,configfiles). - Use network detection rules (see Suricata below).
Response:
- Immediately isolate affected systems.
- Review logs for indicators of compromise (IOCs).
- Apply virtual patching via WAF rules blocking directory traversal patterns.
Indicators of Compromise (IOCs)
- Network IOCs:
- HTTP requests to
/api/getAppFileByteswithpathparameter containing../or..%2f. - Outbound data transfers from the QConvergeConsole server to external IPs (exfiltration).
- HTTP requests to
- File IOCs:
- Unexpected access to files outside the application directory (e.g.,
C:\Windows\System32\config\*).
- Unexpected access to files outside the application directory (e.g.,
- Log IOCs:
- Web server logs showing
200responses to traversal requests. - Application logs with errors related to file read failures (if blocked).
- Web server logs showing
Detection Engineering
YARA Rule
rule CVE_2025_6796_Directory_Traversal {
meta:
description = "Detects directory traversal attempts targeting Marvell QConvergeConsole getAppFileBytes"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-6796"
strings:
$traversal1 = "../" ascii wide nocase
$traversal2 = "..\\" ascii wide nocase
$traversal3 = "%2e%2e%2f" ascii wide nocase
$traversal4 = "%2e%2e%5c" ascii wide nocase
$endpoint = "getAppFileBytes" ascii wide nocase
condition:
any of ($traversal*) and $endpoint
}
Sigma Rule
title: CVE-2025-6796 Directory Traversal in Marvell QConvergeConsole
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects HTTP requests with directory traversal patterns targeting the getAppFileBytes endpoint.
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: generic
detection:
selection:
cs-uri-query|contains:
- 'getAppFileBytes'
- '../'
- '..\\'
- '%2e%2e%2f'
- '%2e%2e%5c'
condition: selection
falsepositives:
- Legitimate file access within the application directory (rare)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-6796 Marvell QConvergeConsole Directory Traversal"; flow:to_server,established; content:"getAppFileBytes"; http_uri; content:"../"; http_uri; nocase; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Network Segmentation: Restrict access to the QConvergeConsole management interface to trusted IPs only (e.g., via firewall rules).
- Web Application Firewall (WAF): Deploy WAF rules to block requests containing
../or..%2fin thepathparameter. - Disable Unnecessary Endpoints: If possible, disable the
getAppFileBytesendpoint or restrict it to authenticated users.
Long-Term Fix:
- Await an official patch from Marvell. Monitor Marvell’s security advisories.
- If source code is available, implement proper path canonicalization and validation as shown in the patched code example.
Workaround:
- Use a reverse proxy (e.g., Nginx, Apache) to filter traversal patterns before they reach the application.
Valters IT Signature: This report was generated by Valters IT – DevSecOps & Cyber Threat Intelligence Division. For questions, contact security@valters-it.com.
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.