CVE-2026-31732Linux内核中的GPIO子系统存在资源泄漏漏洞。在gpiochip_add_data_with_key()函数中,由于自特定提交以来gdev->dev.release未被设置,导致在错误处理路径中未能正确减少gdev->dev的引用计数。这会导致在GPIO芯片注册失败时,相关内存资源无法被释放,长期利用可能导致系统内存耗尽或拒绝服务。
该漏洞位于Linux内核的GPIO驱动子系统中。问题源于gpiochip_add_data_with_key()函数的执行逻辑变更。在执行device_initialize()之后,如果后续初始化步骤失败并跳转到错误处理区域,由于gdev->dev.release回调函数为空,引用计数未被正确递减。原本应释放的gpio_device结构体(gdev)及其关联资源因此发生泄漏。修复方案通过在错误处理路径(ERR ZONE 2)中调用gpio_device_put()来手动释放引用,并重构了代码以防止双重释放。攻击者需具备本地低权限,通过触发特定的GPIO芯片注册失败路径来利用此漏洞。