Bug 2502872 (CVE-2026-64191) - CVE-2026-64191 kernel: i2c: stub: Reject I2C block transfers with invalid length
Summary: CVE-2026-64191 kernel: i2c: stub: Reject I2C block transfers with invalid length
Keywords:
Status: NEW
Alias: CVE-2026-64191
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
high
high
Target Milestone: ---
Assignee: Product Security DevOps Team
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2026-07-20 17:02 UTC by OSIDB Bzimport
Modified: 2026-09-09 01:06 UTC (History)
2 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2026:59723 0 None None None 2026-08-26 04:35:29 UTC
Red Hat Product Errata RHSA-2026:59737 0 None None None 2026-08-26 03:58:49 UTC
Red Hat Product Errata RHSA-2026:59821 0 None None None 2026-08-26 05:34:20 UTC
Red Hat Product Errata RHSA-2026:65708 0 None None None 2026-09-09 01:06:33 UTC
Red Hat Product Errata RHSA-2026:65709 0 None None None 2026-09-09 00:46:34 UTC
Red Hat Product Errata RHSA-2026:65710 0 None None None 2026-09-09 00:35:51 UTC
Red Hat Product Errata RHSA-2026:65711 0 None None None 2026-09-09 00:40:42 UTC

Description OSIDB Bzimport 2026-07-20 17:02:05 UTC
In the Linux kernel, the following vulnerability has been resolved:

i2c: stub: Reject I2C block transfers with invalid length

The I2C_SMBUS_I2C_BLOCK_DATA case in stub_xfer() uses data->block[0]
as the transfer length. The existing check only clamps it to avoid
overrunning the chip->words[256] register array, but does not validate
it against I2C_SMBUS_BLOCK_MAX (32), which is the limit of the union
i2c_smbus_data.block buffer (34 bytes total). The driver is a
development/test tool (CONFIG_I2C_STUB=m, not built by default)
that must be loaded with a chip_addr= parameter.

A local user with access to /dev/i2c-* can issue an I2C_SMBUS ioctl
with I2C_SMBUS_I2C_BLOCK_DATA and data->block[0] > 32, causing
stub_xfer() to read or write past the end of the union
i2c_smbus_data.block buffer:

 BUG: KASAN: stack-out-of-bounds in stub_xfer (drivers/i2c/i2c-stub.c:223)
 Read of size 1 at addr ffff88800abcfd92 by task exploit/81
 Call Trace:
  <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>

The bug exists because i2c-stub implements .smbus_xfer directly,
bypassing the I2C_SMBUS_BLOCK_MAX validation in
i2c_smbus_xfer_emulated(). The I2C_SMBUS_BLOCK_DATA case in the same
function correctly validates against I2C_SMBUS_BLOCK_MAX, but the
I2C_SMBUS_I2C_BLOCK_DATA case does not.

Fix by rejecting transfers with data->block[0] == 0 or
data->block[0] > I2C_SMBUS_BLOCK_MAX with -EINVAL, consistent with
both the I2C_SMBUS_BLOCK_DATA case in the same function and the
I2C_SMBUS_I2C_BLOCK_DATA validation in i2c_smbus_xfer_emulated().

Comment 3 errata-xmlrpc 2026-08-26 03:58:48 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 8

Via RHSA-2026:59737 https://access.redhat.com/errata/RHSA-2026:59737

Comment 4 errata-xmlrpc 2026-08-26 04:35:28 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 9

Via RHSA-2026:59723 https://access.redhat.com/errata/RHSA-2026:59723

Comment 5 errata-xmlrpc 2026-08-26 05:34:19 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 8

Via RHSA-2026:59821 https://access.redhat.com/errata/RHSA-2026:59821

Comment 6 errata-xmlrpc 2026-09-09 00:35:50 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 8.4 Advanced Mission Critical Update Support
  Red Hat Enterprise Linux 8.4 Extended Update Support Long-Life Add-On

Via RHSA-2026:65710 https://access.redhat.com/errata/RHSA-2026:65710

Comment 7 errata-xmlrpc 2026-09-09 00:40:41 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 8.6 Advanced Mission Critical Update Support
  Red Hat Enterprise Linux 8.6 Extended Update Support Long-Life Add-On

Via RHSA-2026:65711 https://access.redhat.com/errata/RHSA-2026:65711

Comment 8 errata-xmlrpc 2026-09-09 00:46:33 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 8.8 Update Services for SAP Solutions
  Red Hat Enterprise Linux 8.8 Telecommunications Update Service

Via RHSA-2026:65709 https://access.redhat.com/errata/RHSA-2026:65709

Comment 9 errata-xmlrpc 2026-09-09 01:06:32 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 9.6 Extended Update Support

Via RHSA-2026:65708 https://access.redhat.com/errata/RHSA-2026:65708


Note You need to log in before you can comment on or make changes to this bug.