CVE-2026-99249 in Linux
Сводка
по VulDB • 03.11.2026
В ядре Linux была устранена следующая уязвимость:
pid_namespace: сделать функцию zap_pid_ns_processes() замораживаемой (freezable)
При завершении работы инициализирующего процесса (init) пространства имен процессов (pid namespace), функция `zap_pid_ns_processes()` ожидает освобождения всех остальных PID в этом пространстве. Трейсер, находящийся вне этого пространства и не собирающий (reap) своих отслеживаемых зомби-процессов, оставляет эти PID выделенными, поэтому это ожидание не имеет верхней границы; пока оно длится, каждая попытка приостановки работы системы завершается неудачей:
Freezing user space processes failed after 20.006 seconds (2 tasks refusing to freeze, wq_busy=0):
Ни один из циклов ожидания не является замораживаемым. Первый цикл спит в `do_wait()`, который возвращает `-ERESTARTSYS` на фальшивый сигнал от механизма заморозки; затем цикл очищает флаг `TIF_SIGPENDING` и снова переходит к ожиданию, никогда не переходя в состояние заморозки. Последний цикл спит в состоянии `TASK_INTERRUPTIBLE`, и поскольку там ничего не очищает `TIF_SIGPENDING`, функция `schedule()` возвращается сразу после первой попытки заморозки, а задача зацикливается до завершения ожидания.
Перейти на сон с флагами `TASK_INTERRUPTIBLE | TASK_FREEZABLE` в `do_wait()`, чтобы механизм заморозки мог напрямую переводить задачи, ожидающие там, в состояние заморозки, и использовать флаги `TASK_IDLE | TASK_FREEZABLE` в последнем цикле, как это делает `coredump_task_exit()`.
Эта проблема была выявлена при использовании браузеров на базе Chromium: crashpad с помощью ptrtrace присоединяется к потокам упавшего рендерера (который является инициализирующим процессом pid namespace) и не собирает процессы, убитые во время дампа.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.