CVE-2026-23324Linux内核中的etas_es58x USB驱动程序存在逻辑缺陷。在读取批量回调中,提交URB时未先进行锚定,导致在调用usb_kill_anchored_urbs()时可能发生内存泄漏,进而影响系统可用性。
该漏洞位于Linux内核的drivers/net/can/usb/etas_es58x.c驱动程序中。驱动程序使用了URB(USB Request Block)锚定模式来管理USB请求块的生命周期。正确的逻辑应当是先将URB添加到锚点列表,然后再提交给USB核心,以确保在需要终止时(如调用usb_kill_anchored_urbs)能正确释放所有URB。然而,在读取批量回调函数中,代码错误地先提交了URB,随后才进行锚定操作。如果在提交和锚定之间的极短时间窗口内,系统尝试终止锚定的URB(例如设备断开或驱动卸载),该URB尚未被加入列表,因此不会被释放,导致内存泄漏。攻击者需具备本地低权限,通过触发特定的USB通信流程可反复利用此漏洞,最终导致系统内存耗尽和拒绝服务。