CVE-2026-31627Linux内核中的s3c24xx I2C驱动程序存在安全漏洞,该漏洞源于驱动在处理SMBUS消息时未正确验证消息大小。SMBUS消息的第一个字节通常用于表示数据长度,但在使用前驱动程序未检查该值是否在有效范围内(0到I2C_SMBUS_BLOCK_MAX)。本地攻击者可利用此缺陷发送特制的恶意消息,导致内核处理越界数据,进而引发内存损坏、系统崩溃或潜在的权限提升。
该漏洞位于Linux内核的`drivers/i2c/busses/i2c-s3c24xx.c`驱动文件中。在SMBUS块读写操作中,协议规定接收到的数据块首字节为后续数据的长度。漏洞代码在读取该长度字节后,直接将其用于内存拷贝或缓冲区操作,而未将其与`I2C_SMBUS_BLOCK_MAX`进行边界校验。这与此前Tegra I2C驱动中修复的问题逻辑一致。攻击者若具备本地低权限(PR:L),可通过打开对应的I2C设备节点(如/dev/i2c-x)并构造恶意`ioctl`请求,将长度字段设置为超大值,从而触发内核堆栈溢出或越界写入,破坏内核内存空间,可能导致提权或拒绝服务。