CVE-2026-31621Linux内核中的bnge驱动程序存在一个安全漏洞。在错误处理路径中,当`auxiliary_device_add`函数调用失败时,代码执行了`auxiliary_device_uninit`但未立即返回。这导致`bnge_aux_dev_release`被同步调用,释放了底层对象并将`bd->auxr_dev`置为NULL。随后的代码尝试访问`bd->auxr_dev->net`,从而引发空指针解引用。本地低权限攻击者可利用此漏洞导致系统崩溃或拒绝服务。
该漏洞源于Linux内核bnge驱动程序在处理辅助设备初始化失败时的逻辑缺陷。具体流程如下:首先,驱动尝试添加辅助设备,若`auxiliary_device_add`返回错误,程序进入错误处理块。在该块中,`auxiliary_device_uninit`被调用,这会释放设备引用并触发`bnge_aux_dev_release`回调。该回调函数会将`bd->auxr_dev`设为NULL并释放内存。由于原代码缺少关键的`return`语句,程序未退出错误处理流程,继续执行后续代码。当执行到`bd->auxr_dev->net`赋值操作时,由于指针已被置空,发生了空指针解引用。此漏洞允许本地低权限用户通过触发特定错误条件导致内核崩溃,造成拒绝服务。