CVE-2024-26593 Overview
CVE-2024-26593 is an out-of-bounds read vulnerability [CWE-125] in the Linux kernel's i2c-i801 driver. The driver handles System Management Bus (SMBus) communication for Intel chipsets. According to Intel datasheets, software must reset the block buffer index twice during block process call transactions: once before writing outgoing data and once before reading incoming data. The driver omits the second reset, causing it to read the wrong portion of the block buffer. A local authenticated attacker with access to the i2c subsystem can trigger incorrect buffer reads, leading to information exposure or system instability on affected Linux hosts.
Critical Impact
Local users interacting with the SMBus block process call interface can cause the kernel to read incorrect buffer memory, resulting in data corruption and potential denial of service.
Affected Products
- Linux Kernel (multiple stable branches prior to the fix commits)
- Debian LTS distributions shipping the affected kernel
- Fedora distributions shipping the affected kernel
Discovery Timeline
- 2024-02-23 - CVE-2024-26593 published to NVD
- 2025-11-04 - Last updated in NVD database
Technical Details for CVE-2024-26593
Vulnerability Analysis
The vulnerability resides in the i2c-i801 driver, which implements support for Intel SMBus controllers in the Linux kernel. SMBus block process call transactions combine a write and a read in a single operation against the controller's shared block buffer. The Intel hardware specification requires the host buffer index pointer to be reset before each phase of the transaction.
The driver correctly resets the index before writing outbound data into the buffer but does not reset it again before reading the response. As a result, the driver reads from an offset beyond the intended start of the inbound data, returning the wrong bytes to the caller. This constitutes an out-of-bounds read [CWE-125] within the controller's mapped block buffer region.
The issue affects integrity of returned SMBus data and reliability of the kernel I/O path. Local privileges and access to the i2c device interface are required to reach the vulnerable code path.
Root Cause
The root cause is a missing reset of the SMBus host block buffer index between the write and read phases of a block process call transaction. Without this reset, the controller's internal pointer continues from where the write phase left off, so the subsequent read returns data from the wrong buffer offset.
Attack Vector
Exploitation requires local access with sufficient privileges to issue SMBus block process call ioctls through the i2c-dev interface or via a kernel subsystem that performs such transactions. Remote exploitation is not possible. The vulnerability does not yield direct code execution but can disclose unintended buffer contents and cause availability impact through corrupted device state.
No public proof-of-concept exploit is available, and the issue is not listed in the CISA Known Exploited Vulnerabilities catalog.
Detection Methods for CVE-2024-26593
Indicators of Compromise
- Unexpected SMBus read failures or inconsistent block data returned by i2c_smbus_block_process_call() callers in kernel logs.
- dmesg entries from the i2c_i801 driver indicating transaction errors or unexpected block sizes.
- Userland tools such as i2cdetect or i2ctransfer returning corrupted block responses on systems using Intel SMBus controllers.
Detection Strategies
- Inventory Linux hosts using Intel chipsets that load the i2c_i801 module and identify kernel versions predating the upstream fix commits.
- Compare running kernel versions against the patched commit hashes published on git.kernel.org for each stable branch.
- Audit which users and services have access to /dev/i2c-* device nodes, as access is required to reach the vulnerable code path.
Monitoring Recommendations
- Forward kernel logs to a centralized log platform and alert on repeated i2c_i801 warning or error messages.
- Monitor process activity that opens /dev/i2c-* devices outside of approved firmware management or sensor monitoring services.
- Track package and kernel update status across the fleet to confirm timely patch deployment.
How to Mitigate CVE-2024-26593
Immediate Actions Required
- Update affected Linux distributions to a kernel version that includes the upstream fix commits referenced on git.kernel.org.
- Apply vendor updates from Debian LTS and Fedora package announcements covering this CVE.
- Restrict access to /dev/i2c-* device nodes to root and trusted system services only.
- Reboot systems after kernel updates to ensure the patched i2c_i801 module is active.
Patch Information
The fix adds the missing block buffer index reset before the read phase of block process call transactions in the i2c-i801 driver. Patched commits are available across multiple stable branches, including 1f8d0691c505, 491528935c9c, 609c7c1cc976, 6be99c51829b, 7a14b8a477b8, c1c9d0f6f7f1, and d074d5ff5ae7. Distribution updates are documented in the Debian LTS Announcement and the Fedora Package Announcement.
Workarounds
- Tighten permissions on /dev/i2c-* device nodes using udev rules so only privileged services can issue SMBus block process call transactions.
- Unload the i2c_i801 module on systems where SMBus access is not required by issuing modprobe -r i2c_i801 and blacklisting it.
- Disable userland tools and services that perform SMBus block process call transactions until the patched kernel is deployed.
# Configuration example: restrict i2c device access and blacklist the module if unused
# /etc/udev/rules.d/99-i2c-restrict.rules
KERNEL=="i2c-[0-9]*", MODE="0600", OWNER="root", GROUP="root"
# /etc/modprobe.d/blacklist-i2c-i801.conf (only if SMBus access is not needed)
blacklist i2c_i801
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

