CVE-2024-38658
Executive Summary
CVE-2024-38658 is an Out-of-Bounds Read vulnerability affecting Fuji Electric V-Server and V-Server Lite versions up to and including v4.0.19.0. This flaw allows an attacker to craft a malicious file that, when opened by a user, can lead to information disclosure and potentially arbitrary code execution. The vulnerability resides in the parsing logic of the application, where insufficient bounds checking on user-supplied data can cause the application to read beyond allocated memory buffers. This can expose sensitive data or corrupt memory, enabling code execution under the context of the logged-in user. No public proof-of-concept (PoC) or exploit code has been released, and the vendor has not yet provided a patch. The EPSS score is 0.0%, indicating low exploitation activity in the wild, but the risk remains significant for organizations using these products in industrial control system (ICS) environments.
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 NPM, PyPI, Go, or Ruby packages. It affects a proprietary Windows-based application from Fuji Electric used in SCADA/HMI environments. Supply chain risk is limited to the direct distribution of the vulnerable software by Fuji Electric.
CVSS Breakdown & Threat Level
The CVSS score is listed as 0.0, which is likely a placeholder or unassigned value. Based on the vulnerability characteristics, a reasonable CVSS v3.1 vector would be:
- Attack Vector (AV): Local (L) – requires user to open a file.
- Attack Complexity (AC): Low (L) – no special conditions.
- Privileges Required (PR): None (N) – no authentication needed.
- User Interaction (UI): Required (R) – victim must open the file.
- Scope (S): Unchanged (U) – vulnerability does not cross trust boundaries.
- Confidentiality (C): High (H) – information disclosure possible.
- Integrity (I): High (H) – arbitrary code execution possible.
- Availability (A): High (H) – crash or code execution can disrupt service.
Estimated CVSS Vector: CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Estimated Base Score: 7.8 (High)
Threat Level: High. While no active exploitation is reported, the potential for remote code execution in an ICS context makes this a critical concern for asset owners.
Deep Dive & Mechanics
The vulnerability is an Out-of-Bounds Read (CWE-125) in the file parsing component of V-Server and V-Server Lite. These applications are used for monitoring and controlling industrial processes. They support various file formats for project data, configuration, and visualization.
Root Cause: The application fails to validate the size of data read from a file before copying it into a fixed-size buffer. When a specially crafted file is opened, the application reads beyond the intended buffer boundary, accessing adjacent memory regions.
Attack Vector: An attacker must convince a user to open a malicious file, typically via social engineering (e.g., email attachment, malicious download). The file is likely a project file (e.g., .vpr, .vsc, or similar) that the application parses.
Impact:
- Information Disclosure: The out-of-bounds read can leak sensitive data from memory, such as credentials, encryption keys, or other process data.
- Arbitrary Code Execution: By carefully crafting the file, an attacker can overwrite critical data structures (e.g., function pointers, return addresses) to redirect execution flow to attacker-controlled shellcode. This allows full compromise of the affected system.
Prerequisites:
- Victim must have V-Server or V-Server Lite installed (v4.0.19.0 or earlier).
- Victim must open the malicious file.
- No special privileges required.
Vulnerable vs. Patched Code
Since no patch is available, a direct code comparison is not possible. However, based on the vulnerability type, the fix would involve adding bounds checking before memory copy operations.
Vulnerable Code Pattern (C/C++ example):
void parse_file_data(char *file_buffer, int file_size) {
char local_buffer[256];
// No bounds check - vulnerable to out-of-bounds read
memcpy(local_buffer, file_buffer, file_size);
}
Patched Code Pattern:
void parse_file_data(char *file_buffer, int file_size) {
char local_buffer[256];
// Bounds check added
if (file_size > sizeof(local_buffer)) {
// Handle error, reject file
return;
}
memcpy(local_buffer, file_buffer, file_size);
}
The patched version would validate that the input size does not exceed the destination buffer size before performing the copy.
Exploitation & Lab Setup
Red Team (Offensive)
Objective: Craft a malicious file to trigger out-of-bounds read and achieve code execution.
Lab Environment:
- Windows 10/11 VM with V-Server v4.0.19.0 installed.
- Python 3.x for file crafting.
- Debugger (x64dbg) for analysis.
Steps:
- Identify File Format: Reverse engineer the file format (e.g.,
.vpr) using a hex editor and debugger to understand header structures and data offsets. - Craft Malicious File: Create a file with a manipulated size field that exceeds the expected buffer length.
# Example Python script to craft a malicious file import struct # Assume file header contains a 4-byte size field at offset 0x10 header = b'\x00' * 0x10 size_field = struct.pack('<I', 0xFFFFFFFF) # Large size to trigger overflow payload = b'A' * 0x1000 # Arbitrary data malicious_file = header + size_field + payload with open('malicious.vpr', 'wb') as f: f.write(malicious_file) - Deliver File: Send the file to the victim via email or download.
- Trigger Exploit: Victim opens the file in V-Server. The application reads beyond the buffer, potentially leaking memory or executing shellcode if the payload is crafted to overwrite a function pointer.
Note: No public exploit exists; this is a theoretical approach.
Blue Team (Defensive)
Objective: Detect and prevent exploitation.
Detection:
- Monitor for unusual file opens by V-Server processes.
- Use endpoint detection and response (EDR) to flag memory access violations.
- Deploy application whitelisting to block unknown executables.
Prevention:
- Restrict user privileges to prevent installation of untrusted software.
- Use email filtering to block suspicious attachments.
- Implement file integrity monitoring (FIM) for critical system files.
Hunting:
- Search for crash dumps or application errors related to V-Server.
- Analyze network traffic for unusual outbound connections from V-Server hosts.
Indicators of Compromise (IOCs)
- File Hashes (SHA256): (No known malicious files yet)
- Process Names:
V-Server.exe,V-ServerLite.exe - Registry Keys:
HKLM\SOFTWARE\Fuji Electric\V-Server - Network Indicators: Unusual outbound connections from V-Server processes to unknown IPs.
- Memory Artifacts: Large memory allocations or access violations in V-Server process memory.
- File Artifacts: Files with
.vpr,.vsc, or other project extensions that are unusually large or malformed.
Detection Engineering
YARA Rule
rule CVE_2024_38658_VServer_OOB_Read {
meta:
description = "Detects malicious files targeting CVE-2024-38658 in Fuji Electric V-Server"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2024-38658"
strings:
$magic = { 56 2D 53 65 72 76 65 72 } // "V-Server" in hex
$size_field = { FF FF FF FF } // Potential oversized size field
condition:
$magic at 0 and $size_field
}
Sigma Rule
title: CVE-2024-38658 - Fuji Electric V-Server Out-of-Bounds Read
id: 8a9b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d
status: experimental
description: Detects potential exploitation of CVE-2024-38658 via file open events
author: Valters IT
date: 2025-04-10
logsource:
category: process_creation
product: windows
detection:
selection:
Image|endswith:
- '\V-Server.exe'
- '\V-ServerLite.exe'
CommandLine|contains: '.vpr'
condition: selection
falsepositives:
- Legitimate use of V-Server project files
level: high
Suricata Rule
alert tcp $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2024-38658 - Fuji Electric V-Server Out-of-Bounds Read"; flow:to_server,established; content:"V-Server"; nocase; content:"|FF FF FF FF|"; distance:0; within:4; classtype:attempted-user; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Isolate Affected Systems: Disconnect V-Server hosts from untrusted networks if possible.
- User Awareness: Train users not to open unsolicited files from unknown sources.
- Application Control: Use AppLocker or similar to restrict execution of V-Server to authorized users only.
Long-Term Fix:
- Vendor Patch: Await an official patch from Fuji Electric. Monitor their security advisory page.
- Upgrade: If a patched version becomes available, upgrade immediately.
- Workaround: If patching is not possible, consider using a sandbox or virtualized environment to open project files.
Compensating Controls:
- Deploy endpoint protection with behavioral analysis.
- Enable Windows Defender Exploit Guard (e.g., Control Flow Guard, Data Execution Prevention).
- Implement strict file upload filters on email and web gateways.
Valters IT
Securing Your Digital Frontier
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.