CVE-2026-64086 in Linuxinfo

Summary

by MITRE • 07/19/2026

In the Linux kernel, the following vulnerability has been resolved:

hwmon: (pmbus/adm1266) include PEC byte in pmbus_block_xfer read buffer

adm1266_pmbus_block_xfer() sets up the read transaction with

.buf = data->read_buf, .len = ADM1266_PMBUS_BLOCK_MAX + 2,

but read_buf in struct adm1266_data is declared as

u8 read_buf[ADM1266_PMBUS_BLOCK_MAX + 1];

For a max-length block response (length byte = 255 + up to 1 PEC byte), the i2c controller is told to write 257 bytes into a 256-byte buffer, putting one byte past the end of read_buf. The same response also makes the subsequent PEC compare

if (crc != msgs[1].buf[msgs[1].buf[0] + 1])

read a byte beyond the array.

Bump the read_buf declaration to ADM1266_PMBUS_BLOCK_MAX + 2 so the buffer can hold the length byte, up to 255 payload bytes, and the PEC byte the i2c_msg length already accounts for.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

Analysis

by VulDB Data Team • 07/19/2026

The vulnerability resides in the Linux kernel's hardware monitoring subsystem, specifically within the pmbus driver implementation for the adm1266 device. This issue represents a classic buffer overflow scenario that occurs during I2C communication handling, where memory boundaries are incorrectly calculated leading to potential security implications. The problem manifests in the adm1266_pmbus_block_xfer() function which manages block transfer operations between the hardware monitoring device and the system's I2C controller. The root cause stems from a mismatch between the buffer allocation size and the actual data requirements for PMBus protocol communication, creating a condition where memory corruption can occur during read operations.

The technical flaw occurs due to improper buffer sizing in the adm1266_data structure where read_buf is declared with a size of ADM1266_PMBUS_BLOCK_MAX + 1 bytes, while the function sets up a transaction requesting ADM1266_PMBUS_BLOCK_MAX + 2 bytes. This discrepancy becomes critical when handling maximum-length block responses where the length byte equals 255 plus potential PEC (Packet Error Checking) byte. The i2c controller attempts to write 257 bytes into a 256-byte buffer, resulting in one byte of buffer overflow that can overwrite adjacent memory locations. This memory corruption scenario aligns with CWE-121, heap-based buffer overflow, and represents a direct violation of safe programming practices regarding buffer boundary management.

The operational impact of this vulnerability extends beyond simple memory corruption as it affects the reliability and security of hardware monitoring operations within Linux systems. When exploited, this condition could potentially allow attackers to manipulate system behavior through crafted I2C responses or cause system instability during hardware monitoring operations. The vulnerability particularly impacts systems that rely on PMBus protocol for power management and monitoring, such as servers, embedded systems, and data center infrastructure where precise hardware monitoring is critical. This type of memory corruption can lead to system crashes, data integrity issues, or potentially provide a foothold for more sophisticated attacks targeting the kernel's I2C subsystem.

The fix addresses this vulnerability by properly sizing the read_buf array to accommodate all expected data elements including the length byte, maximum payload bytes, and the PEC byte. This correction ensures that the buffer allocation matches the actual data requirements specified in the i2c_msg structure and prevents the overflow condition that could lead to memory corruption or unauthorized memory access. The solution follows established security practices for buffer management and aligns with ATT&CK framework techniques related to privilege escalation through kernel exploitation, specifically addressing the need for proper input validation and memory boundary checking in kernel space operations. This remediation ensures that hardware monitoring functionality remains secure and reliable while maintaining compatibility with PMBus protocol specifications.

The vulnerability demonstrates how seemingly minor buffer sizing issues can have significant security implications in kernel-level drivers, particularly those handling I2C communication protocols where precise data management is critical for system stability. The fix reinforces proper defensive programming practices by ensuring that all memory allocations account for complete data structures including protocol overhead elements such as PEC bytes. This type of vulnerability highlights the importance of thorough testing of boundary conditions in kernel drivers and demonstrates how protocol compliance requirements must be carefully considered during buffer allocation planning to prevent exploitation opportunities that could compromise system integrity.

Responsible

Linux

Reservation

07/19/2026

Disclosure

07/19/2026

Moderation

accepted

CPE

ready

EPSS

0.00000

KEV

no

Activities

low

Sources

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!