CVE-2026-23362Linux内核的CAN(控制器局域网)BCM(广播管理器)组件中存在一个安全漏洞。该漏洞源于在处理带有RX_RTR_FRAME标志的RX_SETUP命令时,未对bcm_op结构体中的自旋锁进行初始化。虽然RX_SETUP通常仅处理接收流量,但在RTR(远程传输请求)场景下,它会调用发送函数bcm_can_tx(),该函数试图使用未初始化的自旋锁。本地低权限攻击者可利用此缺陷触发内核崩溃或死锁,从而导致系统拒绝服务。
该漏洞位于net/can/bcm.c驱动文件中。此前提交c2aba69d0c36为bcm_tx_setup()中的变量添加了运行时更新锁(spin_lock),并在分配bcm_op时通过spin_lock_init()进行了初始化。然而,bcm_rx_setup()在分配bcm_op时遗漏了这一初始化步骤。
当用户设置RX_RTR_FRAME标志时,接收操作会使用bcm_can_tx()来发送预定义的CAN帧。bcm_can_tx()函数内部会调用spin_lock(&op->lock)以保护传输操作。由于bcm_rx_setup()未初始化该锁,当系统尝试获取该未初始化的锁时,会导致内核异常(如NULL指针引用或无效的锁操作),进而引发内核恐慌或系统挂起。攻击向量为本地(AV:L),无需用户交互(UI:N),仅需低权限(PR:L)即可触发。