CVE-2025-71290Linux内核中的ti_fpc202驱动程序在probe函数中存在一处内存泄漏漏洞。该漏洞源于代码在遍历设备树的子节点时,未能正确管理设备节点的引用计数。在特定错误处理路径下,`of_node_put`未被调用,导致引用泄漏。本地低权限攻击者可利用此缺陷,通过反复触发设备探测或加载操作,逐渐耗尽系统内核内存资源,最终导致系统不稳定或拒绝服务。
该漏洞位于Linux内核的`drivers/misc/ti_fpc202.c`驱动文件中。在设备初始化的probe函数里,代码使用`for_each_child_of_node`宏遍历设备树的子节点。如果在循环过程中发生错误(如分配内存失败)提前退出,或者循环结束后未在所有代码路径中调用`of_node_put()`函数,设备节点的引用计数将无法减1,导致该结构体及其关联的内存资源永远无法被释放。修复方案采用了`for_each_child_of_node_scoped()`宏,利用GCC的cleanup属性自动处理引用释放,确保无论循环如何退出(正常或异常),引用计数都能被正确管理。攻击者需具备本地低权限,通过编写恶意程序反复加载卸载驱动或触发设备绑定来利用此漏洞,长期运行可导致系统内存耗尽。