CVE-2026-31481Linux内核的tracing子系统在处理启动时的触发器注册时存在安全漏洞。如果在清理线程创建之前发生触发器注册失败,延迟释放的节点会堆积在列表中。当后续释放操作回退到同步释放时,旧的队列条目被永久泄漏,并可能触发空指针解引用,导致系统内核崩溃。本地低权限攻击者可通过特定的内核命令行参数触发该漏洞。
该漏洞源于Linux内核tracing模块中的延迟释放机制。在系统启动初期,如果触发器注册失败(例如通过命令行参数传入重复触发器),系统会将释放操作推迟到`trigger_data_free_list`,等待后续的清理kthread处理。然而,如果该kthread创建失败,代码逻辑中未包含同步排空延迟列表的机制。这导致失败节点堆积,造成内存泄漏。更严重的是,后续对堆积对象的释放操作会访问空指针,导致内核崩溃(Kernel Panic),从而实现拒绝服务攻击。