CVE-2026-23431Linux内核中的amlogic-spisg驱动程序存在内存泄漏漏洞。在aml_spisg_probe()函数中,虽然通过spi_alloc_host()分配了控制器内存,但在后续的错误处理路径中未能调用spi_controller_put()进行释放。这导致驱动探测失败时内存泄漏,长期利用可能耗尽系统资源。
该漏洞属于资源管理错误,发生在Linux内核的SPI驱动初始化阶段。在aml_spisg_probe()函数执行流程中,当spi_alloc_host()成功分配内存后,若发生特定错误(如资源申请失败),代码直接返回错误码而跳过了清理步骤,导致分配的ctlr结构体未被释放。由于攻击者可利用本地低权限触发驱动加载或设备探测,通过反复制造探测失败条件,可造成内核内存持续泄漏,最终导致系统内存耗尽及拒绝服务。修复方案采用了devm_spi_alloc_host(),利用设备管理机制自动处理资源释放。