Overview
A critical vulnerability has been detected in various versions of the Insyde InsydeH2O kernels. This flaw, identified as CVE-2024-52877, could potentially lead to system compromise or data leakage if successfully exploited. The vulnerability is especially significant due to the widespread use of these kernels in various systems, making many entities potentially susceptible to this threat if not promptly addressed.
Vulnerability Summary
CVE ID: CVE-2024-52877
Severity: High (7.5 – CVSS Score)
Attack Vector: Network
Privileges Required: Low
User Interaction: None
Impact: System compromise and potential data leakage.
Affected Products
A new way to communicate
Ameeba Chat is built on encrypted identity, not personal profiles.
Message, call, share files, and coordinate with identities kept separate.
- • Encrypted identity
- • Ameeba Chat authenticates access
- • Aliases and categories
- • End-to-end encrypted chat, calls, and files
- • Secure notes for sensitive information
Private communication, rethought.
Product | Affected Versions
Insyde InsydeH2O Kernel | 5.2 before 05.29.50
Insyde InsydeH2O Kernel | 5.3 before 05.38.50
Insyde InsydeH2O Kernel | 5.4 before 05.46.50
Insyde InsydeH2O Kernel | 5.5 before 05.54.50
Insyde InsydeH2O Kernel | 5.6 before 05.61.50
Insyde InsydeH2O Kernel | 5.7 before 05.70.50
How the Exploit Works
The exploit takes advantage of a flaw in the VariableRuntimeDxe driver. Specifically, the SmmCreateVariableLockList() callback function calls CreateVariableLockListInSmm(). This function uses StrSize() to obtain the variable name size, leading to a potential buffer over-read. Attackers could exploit this vulnerability by sending crafted input that triggers the buffer over-read, potentially leading to system compromise or data leakage.
Conceptual Example Code
A conceptual example of how this vulnerability might be exploited could involve sending a malicious payload to the vulnerable endpoint. This could take the form of a specially crafted HTTP request, as shown below:
POST /VariableRuntimeDxe/StrSize HTTP/1.1
Host: target.example.com
Content-Type: application/json
{ "variable_name": "overly_long_variable_name_..." }
This example is meant to showcase how an attacker could potentially exploit the vulnerability by sending an overly long variable name, leading to a buffer over-read.
