CVE-2026-43144Linux内核中的brcmfmac WiFi驱动程序存在一处潜在的安全漏洞。当SDIO总线的brcmfmac设备探测过程因固件缺失等原因失败时,sdiodev->bus变量被设置为错误指针而非NULL。这导致后续的brcmf_sdio_remove()清理函数尝试通过该无效指针释放资源,进而触发内核崩溃。该漏洞的根本原因在于sdiodev->bus在brcmf_sdio_probe()和brcmf_sdiod_probe()中被重复设置,且错误处理逻辑不当。本地低权限攻击者可利用此漏洞导致系统崩溃,破坏系统可用性。
该漏洞位于Linux内核源码的drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c文件中,涉及Broadcom FullMAC无线网卡驱动的错误处理逻辑。在设备初始化阶段,brcmf_sdio_probe()函数负责探测SDIO总线上的设备。如果探测过程因固件文件丢失等原因失败,该函数应当返回错误代码并保持设备状态干净。然而,在受影响的版本中,sdiodev->bus变量被赋值为ERR_PTR(error_code)(即一个错误指针),而不是保持为NULL。随后,当系统执行设备移除或清理操作调用brcmf_sdio_remove()函数时,代码会检查sdiodev->bus是否为非空指针。由于错误指针在数值上不为NULL,代码误认为设备已成功初始化,进而尝试调用brcmf_sdio_free()等函数通过该无效指针释放资源。这种对错误指针的解引用操作会导致内核发生严重的页面错误,引发内核崩溃,从而导致系统拒绝服务。利用该漏洞要求攻击者拥有本地低权限访问权限,并能够通过特定手段触发驱动程序的加载或卸载流程。