CVE-2026-43008Linux内核中的gpio: qixis-fpga驱动程序存在一个错误处理缺陷。该漏洞源于在调用devm_regmap_init_mmio()函数初始化内存映射寄存器时,原代码错误地检查了返回值是否为NULL。实际上,该函数在初始化失败时返回的是ERR_PTR()封装的错误指针,而非NULL。这种错误的检查逻辑导致错误处理分支永远不会被触发,从而使得系统可能将无效指针当作有效指针进行解引用操作,进而导致内核崩溃或系统不稳定。
该漏洞位于Linux内核的drivers/gpio/gpio-qixis.c文件中。在驱动的初始化流程中,代码调用devm_regmap_init_mmio()来建立内存映射寄存器接口。根据内核驱动开发规范,该函数在失败(如内存分配失败)时会返回一个通过ERR_PTR()宏封装的负数错误码指针。然而,存在漏洞的代码使用了`if (!map)`进行判空检查。由于返回的指针(如0xfffffffffffffffe)不为NULL,检查通过,代码继续执行。随后,当驱动尝试通过regmap_write或regmap_read访问该指针指向的内存区域时,会触发内核页错误,导致内核恐慌。攻击者需要具备本地低权限,且能够触发驱动加载或特定的硬件初始化流程才能利用此漏洞,造成拒绝服务攻击。