CVE-2026-31750Linux内核Comedi子系统中存在一处内存泄漏漏洞。该漏洞源于commit 4e1da516debb未妥善处理do_cmd_ioctl()中的异常退出路径,导致runflags未被设置。这使得do_become_nonbusy()函数无法正确释放chanlist内存,从而造成内存泄漏。本地低权限攻击者可利用此耗尽系统资源。
该漏洞具体存在于Linux内核的Comedi(控制与测量设备接口)驱动子系统中。漏洞起因于提交`4e1da516debb`引入的Comedi命令处理引用计数机制,该机制未充分考量`do_cmd_ioctl`函数中的异常退出场景。当系统执行IOCTL命令时,若在特定错误路径退出,`runflags`标志位将保持未设置状态。随后,当调用`do_become_nonbusy`函数进行清理时,由于代码逻辑仅检查`runflags`是否设置来决定是否释放`chanlist`内存,导致内存未被回收,形成泄漏。攻击者可通过本地访问Comedi设备并触发该特定错误流程,持续执行可耗尽内核内存,最终导致系统崩溃或拒绝服务。