A flaw out of bounds memory access found in the Intel iSMT SMBus host controller driver. If local user triggers I2C_SMBUS_BLOCK_DATA (with the ioctl I2C_SMBUS) with some malicious input data, it can lead to system crash. The problem located in ismt_access() function of the drivers/i2c/busses/i2c-ismt.c.
Created kernel tracking bugs for this issue: Affects: fedora-all [bug 2119381]
Need to publish CVE
Published CVE.
This was fixed for Fedora with the 5.17.13 stable kernel updates.
*** Bug 2123309 has been marked as a duplicate of this bug. ***
Note according to https://bugzilla.redhat.com/show_bug.cgi?id=2123309#c7 this does not yet seem to be addressed upstream, https://lore.kernel.org/lkml/20220729093451.551672-1-zheyuma97@gmail.com/T/ has not been applied at time of this writing.
In reply to comment #19: > Note according to https://bugzilla.redhat.com/show_bug.cgi?id=2123309#c7 > this does not yet seem to be addressed upstream, > https://lore.kernel.org/lkml/20220729093451.551672-1-zheyuma97@gmail.com/T/ > has not been applied at time of this writing. No, I've just checked https://elixir.bootlin.com/linux/v5.19-rc8/source/drivers/i2c/busses/i2c-ismt.c and the patch is there: static int ismt_access(struct i2c_adapter *adap, u16 addr, ... case I2C_SMBUS_I2C_BLOCK_DATA: /* Make sure the length is valid */ if (data->block[0] < 1) data->block[0] = 1; if (data->block[0] > I2C_SMBUS_BLOCK_MAX) data->block[0] = I2C_SMBUS_BLOCK_MAX; if (read_write == I2C_SMBUS_WRITE) { /* i2c Block Write */ ;;; the only diff that instead of " + if (data->block[0] < 1 || data->block[0] > I2C_SMBUS_BLOCK_MAX) + return -EINVAL; + " (like that link https://lore.kernel.org/lkml/20220729093451.551672-1-zheyuma97@gmail.com/T/ ), , they applied if (data->block[0] < 1) data->block[0] = 1; if (data->block[0] > I2C_SMBUS_BLOCK_MAX) data->block[0] = I2C_SMBUS_BLOCK_MAX; They applied it to v5.19-rc8 (and I don't see it yet in v5.19-rc7). However, you are right that for https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/drivers/i2c/busses/i2c-ismt.c?h=v5.19.8 I don't see it now. I think they reverted that patch and instead applied this one: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/i2c/busses/i2c-ismt.c?h=v6.0-rc4&id=690b2549b19563ec5ad53e5c82f6a944d910086e (at least to v6.0-rc4). I didn't check this again, but from what I remember from Wed 17 Aug 2022 (when did analyses of this) both of these two patches actually required.
This issue has been addressed in the following products: Red Hat Enterprise Linux 8 Via RHSA-2023:0854 https://access.redhat.com/errata/RHSA-2023:0854
This issue has been addressed in the following products: Red Hat Enterprise Linux 8 Via RHSA-2023:0832 https://access.redhat.com/errata/RHSA-2023:0832
This issue has been addressed in the following products: Red Hat Enterprise Linux 9 Via RHSA-2023:0951 https://access.redhat.com/errata/RHSA-2023:0951
This issue has been addressed in the following products: Red Hat Enterprise Linux 9 Via RHSA-2023:0979 https://access.redhat.com/errata/RHSA-2023:0979
This bug is now closed. Further updates for individual products will be reflected on the CVE page(s): https://access.redhat.com/security/cve/cve-2022-2873