CVE-2026-64191 in Linux
Tóm tắt
Bởi VulDB • 20/07/2026
Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:
i2c: stub: Từ chối các lệnh truyền khối I2C có độ dài không hợp lệ
Trường hợp `I2C_SMBUS_I2C_BLOCK_DATA` trong hàm `stub_xfer()` sử dụng `data->block[0]` làm độ dài của lệnh truyền. Kiểm tra hiện tại chỉ giới hạn giá trị này để tránh ghi tràn ra mảng bộ nhớ đệm chip->words[256], nhưng không xác thực nó với `I2C_SMBUS_BLOCK_MAX` (32), đây là giới hạn của vùng liên hợp (union) i2c_smbus_data.block (tổng cộng 34 byte). Trình điều khiển này là một công cụ phát triển/kiểm thử (CONFIG_I2C_STUB=m, không được xây dựng theo mặc định) và phải được tải với tham số chip_addr=.
Người dùng cục bộ có quyền truy cập vào /dev/i2c-* có thể gửi lệnh gọi hệ thống ioctl I2C_SMBUS với `I2C_SMBUS_I2C_BLOCK_DATA` và `data->block[0] > 32`, khiến hàm stub_xfer() đọc hoặc ghi vượt quá cuối vùng liên hợp i2c_smbus_data.block:
BUG: KASAN: stack-out-of-bounds trong stub_xfer (drivers/i2c/i2c-stub.c:223) Đọc kích thước 1 tại địa chỉ ffff88800abcfd92 bởi tiến trình exploit/81 Dấu vết cuộc gọi: <TASK> stub_xfer (drivers/i2c/i2c-stub.c:223) __i2c_smbus_xfer (drivers/i2c/i2c-core-smbus.c:593) i2c_smbus_xfer (drivers/i2c/i2c-core-smbus.c:536) i2cdev_ioctl_smbus (drivers/i2c/i2c-dev.c:391) i2cdev_ioctl (drivers/i2c/i2c-dev.c:478) __x64_sys_ioctl (fs/ioctl.c:583) do_syscall_64 (arch/x86/entry/syscall_64.c:94) entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:130) </TASK>
Lỗi tồn tại vì i2c-stub triển khai .smbus_xfer trực tiếp, bỏ qua việc xác thực I2C_SMBUS_BLOCK_MAX trong hàm i2c_smbus_xfer_emulated(). Trường hợp `I2C_SMBUS_BLOCK_DATA` trong cùng một hàm đã xác thực đúng với `I2C_SMBUS_BLOCK_MAX`, nhưng trường hợp `I2C_SMBUS_I2C_BLOCK_DATA` thì không.
Khắc phục bằng cách từ chối các lệnh truyền có `data->block[0] == 0` hoặc `data->block[0] > I2C_SMBUS_BLOCK_MAX` với mã lỗi -EINVAL, nhất quán với cả trường hợp `I2C_SMBUS_BLOCK_DATA` trong cùng hàm và việc xác thực `I2C_SMBUS_I2C_BLOCK_DATA` trong i2c_smbus_xfer_emulated().
VulDB is the best source for vulnerability data and more expert information about this specific topic.