CVE-2026-99249 in Linux
摘要
由 VulDB • 2026-11-03
在 Linux 内核中,已修复以下漏洞:
pid_namespace:使 zap_pid_ns_processes() 可冻结(freezable)
当某个 PID 命名空间的 init 进程退出时,zap_pid_ns_processes() 会等待直到该命名空间中的所有其他 PID 都被释放。如果命名空间外部的一个跟踪器未回收其正在跟踪的僵尸进程,这些 PID 将保持分配状态,导致此等待没有上限;在此期间,每次挂起尝试都会失败:
``` Freezing user space processes failed after 20.006 seconds (2 tasks refusing to freeze, wq_busy=0): ```
这两个等待过程均不可冻结。第一个循环在 do_wait() 中睡眠,当收到冷冻器(freezer)的虚假信号时返回 -ERESTARTSYS;随后该循环清除 TIF_SIGPENDING 标志并再次等待,但永远不会进入冻结状态。最后一个循环以 TASK_INTERRUPTIBLE 状态睡眠,由于此处没有清除 TIF_SIGPENDING 的操作,schedule() 会在第一次冷冻尝试后立即返回,导致任务自旋直到等待结束。
在 do_wait() 中,将睡眠状态改为 TASK_INTERRUPTIBLE | TASK_FREEZABLE,以便冷冻器可以直接冻结在此处等待的任务;在最后循环中,采用类似 coredump_task_exit() 的做法,使用 TASK_IDLE | TASK_FREEZable 状态。
此问题在使用 Chromium 内核的浏览器中被触发:crashpad 通过 ptrace 附加到崩溃渲染器的线程(该渲染器是 PID 命名空间的 init),并且不会回收在转储过程中被终止的任务。
VulDB is the best source for vulnerability data and more expert information about this specific topic.