CVE-2023-28149
Executive Summary
CVE-2023-28149 is a vulnerability in the IhisiServiceSmm module within InsydeH2O firmware, affecting multiple kernel versions. The flaw allows an attacker with local, high-privileged access to modify UEFI variables, potentially leading to persistent system compromise by altering boot configuration or firmware settings. This vulnerability resides in the System Management Mode (SMM) component, which operates at the highest privilege level (Ring -2), making detection and remediation challenging. The CVSS score is 0.0 due to incomplete data, but the impact is severe for systems using affected firmware.
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 software packages (NPM, PyPI, Go, Ruby) but is a firmware-level issue in the InsydeH2O UEFI BIOS. It affects the supply chain of hardware vendors using Insyde firmware, including many laptop and embedded system manufacturers. Organizations should verify their device firmware versions and apply patches from OEMs.
CVSS Breakdown & Threat Level
- CVSS Score: 0.0 (Uncalculated due to missing vector)
- Attack Vector: Local (requires physical or administrative access)
- Attack Complexity: Low
- Privileges Required: High (administrator/root)
- User Interaction: None
- Scope: Unchanged
- Confidentiality Impact: High (potential to read firmware secrets)
- Integrity Impact: High (UEFI variable modification)
- Availability Impact: High (can brick system or bypass secure boot)
- Threat Level: High (persistent firmware-level compromise)
Deep Dive & Mechanics
The IhisiServiceSmm module is a System Management Mode (SMM) driver that provides services for UEFI variable management. The vulnerability stems from insufficient validation of input parameters when handling SMI (System Management Interrupt) requests. An attacker with local administrative privileges can craft a malicious SMI call to modify UEFI variables without proper authorization.
Root Cause: The SMM handler does not enforce access control checks for write operations on UEFI variables, allowing arbitrary modification.
Attack Flow:
- Attacker gains local admin access (e.g., via OS compromise or physical access).
- Attacker triggers an SMI via a custom driver or tool that communicates with the SMM.
- The SMM handler processes the request and modifies UEFI variables (e.g., Secure Boot keys, boot order).
- Changes persist across reboots, enabling bootkits or disabling security features.
Impact: An attacker can disable Secure Boot, install persistent malware, or brick the device.
Vulnerable vs. Patched Code
The vulnerability is in the SMM handler's lack of validation. Below is a conceptual comparison.
Vulnerable Code (Conceptual):
EFI_STATUS SmmHandler(EFI_HANDLE DispatchHandle, const void *Context, void *CommBuffer, UINTN *CommBufferSize) {
// No access check
UEFI_VARIABLE *var = (UEFI_VARIABLE *)CommBuffer;
gRT->SetVariable(var->Name, &var->Guid, var->Attributes, var->DataSize, var->Data);
return EFI_SUCCESS;
}
Patched Code (Conceptual):
EFI_STATUS SmmHandler(EFI_HANDLE DispatchHandle, const void *Context, void *CommBuffer, UINTN *CommBufferSize) {
// Access control check
if (!IsAuthorized(CommBuffer)) {
return EFI_ACCESS_DENIED;
}
UEFI_VARIABLE *var = (UEFI_VARIABLE *)CommBuffer;
gRT->SetVariable(var->Name, &var->Guid, var->Attributes, var->DataSize, var->Data);
return EFI_SUCCESS;
}
Exploitation & Lab Setup
Red Team
Prerequisites:
- Local admin access on a system with vulnerable InsydeH2O firmware.
- A tool to communicate with SMM (e.g.,
chipsecor custom SMI trigger).
Exploitation Steps:
- Identify vulnerable firmware version using
dmidecodeorfwupdmgr. - Use
chipsecto enumerate SMI handlers and locateIhisiServiceSmm. - Craft a payload to modify a UEFI variable (e.g., disable Secure Boot):
# Example using chipsec from chipsec.hal.smi import SMI smi = SMI() # Trigger SMI with crafted communication buffer smi.send_smi(0xEF, buffer=payload) - Verify changes with
efibootmgrormokutil.
Note: No public exploit code is available; this is a conceptual approach.
Blue Team
Detection:
- Monitor for unexpected SMI calls using kernel tracing (e.g.,
ftraceon Linux). - Check UEFI variable integrity with
efivarand compare against known good values. - Use firmware integrity monitoring tools (e.g.,
fwupdwith TPM measurements).
Hunting:
- Look for processes loading custom kernel modules that interact with SMM.
- Analyze system logs for unusual SMI activity (e.g.,
dmesg).
Indicators of Compromise (IOCs)
- File: Modified UEFI variables (e.g.,
SecureBootset to0,BootOrderchanged). - Registry/Config: Unusual entries in NVRAM.
- Network: None (local attack).
- Behavior: System boots with Secure Boot disabled or custom boot entries.
- Logs: SMI handler calls from non-standard sources.
Detection Engineering
YARA Rule
rule CVE_2023_28149_IhisiServiceSmm {
meta:
description = "Detects potential exploitation of CVE-2023-28149 via SMM communication"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2023-28149"
strings:
$smm_handler = "IhisiServiceSmm" nocase
$smi_trigger = { EF 00 00 00 } // Example SMI trigger pattern
condition:
$smm_handler or $smi_trigger
}
Sigma Rule
title: CVE-2023-28149 - UEFI Variable Modification via SMM
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects attempts to modify UEFI variables via SMM, indicating exploitation of CVE-2023-28149
author: Valters IT
logsource:
product: linux
service: syslog
detection:
selection:
- EventID: 1
Image: "*chipsec*"
- EventID: 1
Image: "*smi*"
condition: selection
falsepositives:
- Legitimate firmware updates
level: high
Suricata Rule
alert ip any any -> any any (msg:"CVE-2023-28149 - SMM Communication Detected"; content:"|EF 00 00 00|"; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate:
- Update firmware to patched versions: kernel 5.2 >= 05.28.42, 5.3 >= 05.37.42, 5.4 >= 05.45.39, 5.5 >= 05.53.39, or 5.6 >= 05.60.39.
- Restrict local admin access to trusted users only.
Long-term:
- Enable Secure Boot and TPM-based attestation to detect firmware tampering.
- Implement runtime firmware integrity monitoring.
- Use hardware-backed security (e.g., Intel Boot Guard).
Workarounds:
- Disable SMM write protection if possible (may impact functionality).
- Monitor UEFI variable changes with
efivarscripts.
Valters IT
DevSecOps & Cyber 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.