CVE-2024-57912
Published: 19 January 2025
Summary
CVE-2024-57912 is a high-severity Use of Uninitialized Resource (CWE-908) vulnerability in Linux Linux Kernel. Its CVSS base score is 7.1 (High).
Operationally, exploitation aligns with the MITRE ATT&CK technique Data from Local System (T1005); ranked at the 3.5th percentile by exploit likelihood (below the median); it is not currently listed in the CISA KEV catalog.
The strongest mitigations our analysis identified are NIST 800-53 SC-4 (Information in Shared System Resources) and SI-16 (Memory Protection).
Threat & Defense at a Glance
Threat & Defense Details
Mitigating Controls (NIST 800-53 r5)AI
Requires timely application of upstream kernel patches that initialize the sample struct, directly remediating the uninitialized memory leak to userspace.
Prevents unauthorized disclosure of uninitialized kernel memory through shared system resources like the IIO triggered buffer struct.
Protects kernel memory from unauthorized disclosure to userspace, mitigating risks from uninitialized local structs in drivers.
MITRE ATT&CK Enterprise TechniquesAI
Why these techniques?
Kernel memory disclosure via local uninitialized struct leak directly enables reading sensitive data from the system.
NVD Description
In the Linux kernel, the following vulnerability has been resolved: iio: pressure: zpa2326: fix information leak in triggered buffer The 'sample' local struct is used to push data to user space from a triggered buffer, but it has a hole…
more
between the temperature and the timestamp (u32 pressure, u16 temperature, GAP, u64 timestamp). This hole is never initialized. Initialize the struct to zero before using it to avoid pushing uninitialized information to userspace.
Deeper analysisAI
CVE-2024-57912 is an information disclosure vulnerability in the Linux kernel's Industrial I/O (IIO) subsystem, specifically the zpa2326 pressure sensor driver. The issue arises in the triggered buffer functionality, where a local 'sample' struct used to push data to userspace contains an uninitialized memory hole between the u16 temperature field and the u64 timestamp field. This hole, consisting of padding bytes, is never zeroed out before transmission, potentially leaking uninitialized kernel memory to userspace applications.
A local attacker with low privileges can exploit this vulnerability with low complexity and no user interaction required. Successful exploitation allows reading of sensitive uninitialized kernel data, as indicated by the CVSS v3.1 base score of 7.1 (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H). The confidentiality impact is high due to the information leak, while the availability impact is also rated high, though the root cause stems from the uninitialized resource (CWE-908).
Mitigation is provided through upstream kernel patches, available in multiple stable branches via the referenced commits: 6007d10c5262f6f71479627c1216899ea7f09073, 64a989aa7475b8e76e69b9ec86819ea293e53bab, 9629ff1a86823269b12fb1ba9ca4efa945906287, 979a0db76ceda8fe1f2f85a116bfe97620ebbadf, and b7849f62e61242e0e02c776e1109eb81e59c567c. These patches initialize the 'sample' struct to zero before use, preventing the leak. Security practitioners should apply the relevant stable kernel updates to affected systems using the zpa2326 driver.
Details
- CWE(s)