CVE-2024-10238
Executive Summary
CVE-2024-10238 is a critical stack-based buffer overflow vulnerability (CWE-121) in the firmware image verification implementation of the Supermicro MBD-X12DPG-OA6 motherboard. An authenticated attacker with high privileges can upload a specially crafted firmware image that triggers a stack overflow due to the lack of bounds checking on the fld->used_bytes field. This can lead to arbitrary code execution within the firmware context, potentially allowing persistent compromise of the system's baseboard management controller (BMC) or UEFI environment. The vulnerability has a CVSS score of 7.2 (High) and currently has no known public exploit or patch.
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 software package manager (NPM, PyPI, Go, Ruby). It is a hardware firmware issue specific to Supermicro server motherboards.
CVSS Breakdown & Threat Level
- CVSS Score: 7.2 (High)
- Vector: CVSS:3.1/AV:L/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H
- Attack Vector (AV): Local (L) – Requires physical or logical access to the system.
- Attack Complexity (AC): Low (L) – No special conditions beyond authentication.
- Privileges Required (PR): High (H) – Requires administrative or firmware update privileges.
- User Interaction (UI): None (N) – No user action required beyond the attacker's own.
- Scope (S): Unchanged (U) – The vulnerability does not cross trust boundaries.
- Confidentiality (C): High (H) – Full compromise of firmware secrets.
- Integrity (I): High (H) – Arbitrary code execution in firmware.
- Availability (A): High (H) – Could render the system unbootable.
Threat Level: High. While the EPSS score is 0.0% (indicating low exploitation likelihood currently), the impact is severe for affected systems in data centers or critical infrastructure.
Deep Dive & Mechanics
The vulnerability resides in the firmware image verification routine of the Supermicro MBD-X12DPG-OA6 motherboard. When a firmware update image is uploaded, the verification function processes a structure containing a field fld->used_bytes. This field is used to determine the size of a buffer or the amount of data to copy. The code fails to validate that fld->used_bytes does not exceed the allocated stack buffer size. An attacker can craft a firmware image where fld->used_bytes is set to a value larger than the buffer, causing a stack overflow when data is copied.
Root Cause: Missing bounds check on fld->used_bytes before memory copy operations.
Attack Scenario:
- Attacker gains administrative access to the server (e.g., via compromised credentials or physical access).
- Attacker crafts a malicious firmware image with an oversized
fld->used_bytesfield. - The image is uploaded via the BMC web interface or a firmware update tool.
- The verification routine copies data based on the attacker-controlled size, overflowing the stack.
- The overflow overwrites the return address or other critical stack data, leading to arbitrary code execution in the firmware context.
Impact: Full control over the BMC or UEFI, allowing persistent backdoor, data exfiltration, or denial of service.
Vulnerable vs. Patched Code
Vulnerable Code (Conceptual C):
void verify_firmware_image(struct firmware_image *img) {
char buffer[256];
// ... other code ...
memcpy(buffer, img->data, img->fld->used_bytes); // No bounds check
// ... verification logic ...
}
Patched Code (Conceptual C):
void verify_firmware_image(struct firmware_image *img) {
char buffer[256];
// ... other code ...
if (img->fld->used_bytes > sizeof(buffer)) {
// Reject image
return -1;
}
memcpy(buffer, img->data, img->fld->used_bytes);
// ... verification logic ...
}
The patched version adds a check to ensure fld->used_bytes does not exceed the buffer size before performing the copy.
Exploitation & Lab Setup
Red Team (Offensive)
Lab Environment:
- Supermicro MBD-X12DPG-OA6 motherboard with vulnerable firmware.
- Attacker machine with network access to the BMC (e.g., IPMI).
- Tools: Python,
ipmitool, custom firmware image generator.
Exploitation Steps:
- Identify Target: Scan for Supermicro BMCs on the network (default IPMI port 623).
- Gain Access: Use default credentials or brute-force to obtain admin access.
- Craft Malicious Image: Create a firmware image where the
fld->used_bytesfield is set to a value > 256 (e.g., 512). Include shellcode in the data portion to overwrite the return address. - Upload Image: Use
ipmitoolor the web interface to upload the crafted image. - Trigger Overflow: The verification routine processes the image, causing a stack overflow and executing the shellcode.
- Maintain Access: The shellcode can install a persistent backdoor in the BMC firmware.
Example Python Script (Conceptual):
import struct
def craft_malicious_image():
# Buffer overflow payload
payload = b"A" * 256 # Fill buffer
payload += struct.pack("<I", 0xdeadbeef) # Overwrite return address
payload += b"\x90" * 100 # NOP sled
payload += shellcode # Your shellcode here
# Craft firmware image with oversized used_bytes
image = struct.pack("<I", len(payload)) # fld->used_bytes
image += payload
return image
# Upload via ipmitool or web interface
Blue Team (Defensive)
Detection & Prevention:
- Monitor BMC Logs: Look for failed firmware update attempts or unusual image sizes.
- Network Segmentation: Isolate BMCs on a separate management VLAN.
- Access Control: Enforce strong passwords and multi-factor authentication for BMC access.
- Firmware Integrity: Use signed firmware images and verify signatures before upload.
- Honeypot: Deploy a fake BMC to detect scanning and exploitation attempts.
Incident Response:
- If exploitation is suspected, isolate the affected server from the network.
- Perform forensic analysis of BMC logs and firmware image.
- Reflash the BMC with a known good firmware version.
- Rotate all credentials that may have been compromised.
Indicators of Compromise (IOCs)
- Network: Unusual traffic to/from BMC IP on port 623 (IPMI) or 443 (web interface).
- File: Firmware images with abnormally large
used_bytesfields (e.g., > 256 bytes). - Log: BMC logs showing failed firmware verification with error codes related to buffer overflow.
- Process: Unexpected processes running on the BMC (if accessible via SSH).
- Memory: Stack corruption patterns in BMC memory dumps.
Detection Engineering
YARA Rule
rule CVE_2024_10238_SuperMicro_Firmware_Overflow {
meta:
description = "Detects malicious firmware images exploiting CVE-2024-10238"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2024-10238"
strings:
$overflow_marker = { FF FF FF FF } // Example marker for oversized field
$firmware_header = "SUPERMICRO" nocase
condition:
$firmware_header and #overflow_marker > 10
}
Sigma Rule
title: Supermicro Firmware Overflow Attempt
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects attempts to upload oversized firmware images to Supermicro BMC
author: Valters IT
logsource:
product: supermicro
service: bmc
detection:
selection:
EventID: 1001 # Example firmware upload event
ImageSize: ">256"
condition: selection
falsepositives:
- Legitimate large firmware updates (rare)
level: high
Suricata Rule
alert tcp $HOME_NET any -> $EXTERNAL_NET 623 (msg:"CVE-2024-10238 Supermicro Firmware Overflow Attempt"; flow:to_server; content:"|00 00 00 01|"; depth:4; offset:0; content:"|FF FF FF FF|"; distance:0; within:4; classtype:attempted-admin; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Isolate Affected Systems: Disconnect the vulnerable motherboard from production networks until a patch is available.
- Restrict Access: Limit BMC access to authorized administrators only via firewall rules.
- Monitor Logs: Enable detailed logging on BMC and monitor for suspicious firmware update attempts.
Long-Term Fix:
- Vendor Patch: Await an official firmware update from Supermicro that includes bounds checking on
fld->used_bytes. - Workaround: If patching is not possible, disable firmware update functionality via BMC configuration (if supported).
- Hardware Replacement: Consider replacing the motherboard with a newer model that is not affected.
Compensating Controls:
- Use a hardware security module (HSM) to sign firmware images.
- Implement network-based intrusion detection (NIDS) to detect exploit attempts.
- Regularly audit BMC configurations and access logs.
Valters IT
Senior DevSecOps & Cyber Threat Intelligence Expert