CVE-2026-43457Linux内核中的MCTP I2C驱动程序存在一个内存泄漏漏洞。在数据接收路径中,当`midev->allow_rx`标志为false时,新分配的套接字缓冲区(skb)未被`netif_rx()`消耗,且代码未直接释放该内存。本地低权限攻击者可利用此漏洞反复触发该逻辑,导致内核内存耗尽,从而引发拒绝服务攻击,严重影响系统可用性。
该漏洞位于Linux内核的`drivers/net/mctp/mctp-i2c.c`驱动文件中。MCTP(Management Component Transport Protocol)通过I2C总线进行通信时,驱动会分配skb结构体用于存储接收到的数据包。代码逻辑中包含对`midev->allow_rx`的检查,以判断是否允许接收并将数据包传递给网络协议栈。然而,当该检查失败(返回false)时,函数直接返回错误码,却遗漏了对已分配skb的释放操作(即未调用`kfree_skb`)。攻击者可通过发送特制的I2C数据帧或在特定系统状态下触发接收中断,反复进入该错误代码路径。随着时间推移,这将导致内核空间内存逐渐耗尽,系统可能因OOM(Out of Memory)而崩溃或严重卡顿。