---
id: CVE-2026-99249
title: 'pid_namespace: make zap_pid_ns_processes() freezable'
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  pid_namespace: make zap_pid_ns_processes() freezable

  When the init of a pid namespace exits, zap_pid_ns_processes() waits
  until all other pids in the namespace are fre…
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= 3eb07c8c8adb6f0572baba844ba2d9e501654316 <
    064a6761d6f6ac55d090d3eaca649577ee736713
  - >-
    Linux >= 3eb07c8c8adb6f0572baba844ba2d9e501654316 <
    e8dafad7de9ede813af2d48cc04b7c88fef16682
  - >-
    Linux >= 3eb07c8c8adb6f0572baba844ba2d9e501654316 <
    4b47107f1a80c809c80093e872bcaccdbae13db4
  - >-
    Linux >= 3eb07c8c8adb6f0572baba844ba2d9e501654316 <
    2e10b8a74f55b5aae33db105d3e2d3ae759c865a
  - >-
    Linux >= 3eb07c8c8adb6f0572baba844ba2d9e501654316 <
    7deb5770840339fe88755bf27b92f74edc26ee87
  - >-
    Linux >= 3eb07c8c8adb6f0572baba844ba2d9e501654316 <
    81933038f5e273d17ed22792f906889393b204c5
  - Linux 2.6.24
published: '2026-11-03'
updated: '2026-11-03'
sourceUpdated: '2026-11-03T11:18:26.800Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-99249'
references:
  - url: 'https://git.kernel.org/stable/c/064a6761d6f6ac55d090d3eaca649577ee736713'
  - url: 'https://git.kernel.org/stable/c/e8dafad7de9ede813af2d48cc04b7c88fef16682'
  - url: 'https://git.kernel.org/stable/c/4b47107f1a80c809c80093e872bcaccdbae13db4'
  - url: 'https://git.kernel.org/stable/c/2e10b8a74f55b5aae33db105d3e2d3ae759c865a'
  - url: 'https://git.kernel.org/stable/c/7deb5770840339fe88755bf27b92f74edc26ee87'
  - url: 'https://git.kernel.org/stable/c/81933038f5e273d17ed22792f906889393b204c5'
tags:
  - cve.org
epss: 0.00161
epssPercentile: 0.05339
ingestedAt: '2026-11-05T19:30:42.937Z'
---

## Overview

In the Linux kernel, the following vulnerability has been resolved:

pid_namespace: make zap_pid_ns_processes() freezable

When the init of a pid namespace exits, zap_pid_ns_processes() waits
until all other pids in the namespace are freed. A tracer outside the
namespace that does not reap its traced zombies keeps those pids
allocated, so this wait has no upper bound, and while it lasts every
suspend attempt fails:

  Freezing user space processes failed after 20.006 seconds (2 tasks refusing to freeze, wq_busy=0):

Neither wait is freezable. The first loop sleeps in do_wait(), which
returns -ERESTARTSYS on the freezer's fake signal; the loop then clears
TIF_SIGPENDING and waits again without ever freezing. The final loop
sleeps in TASK_INTERRUPTIBLE, and since nothing clears TIF_SIGPENDING
there, schedule() returns immediately after the first freeze attempt
and the task spins until the wait ends.

Sleep in TASK_INTERRUPTIBLE | TASK_FREEZABLE in do_wait(), so that the
freezer can freeze tasks waiting there directly, and in TASK_IDLE |
TASK_FREEZABLE in the final loop, like coredump_task_exit() does.

This was hit with Chromium-based browsers: crashpad ptrace-attaches the
threads of a crashed renderer, which is a pid namespace init, and does
not reap those killed during the dump.

## Affected

- `Linux >= 3eb07c8c8adb6f0572baba844ba2d9e501654316 < 064a6761d6f6ac55d090d3eaca649577ee736713`
- `Linux >= 3eb07c8c8adb6f0572baba844ba2d9e501654316 < e8dafad7de9ede813af2d48cc04b7c88fef16682`
- `Linux >= 3eb07c8c8adb6f0572baba844ba2d9e501654316 < 4b47107f1a80c809c80093e872bcaccdbae13db4`
- `Linux >= 3eb07c8c8adb6f0572baba844ba2d9e501654316 < 2e10b8a74f55b5aae33db105d3e2d3ae759c865a`
- `Linux >= 3eb07c8c8adb6f0572baba844ba2d9e501654316 < 7deb5770840339fe88755bf27b92f74edc26ee87`
- `Linux >= 3eb07c8c8adb6f0572baba844ba2d9e501654316 < 81933038f5e273d17ed22792f906889393b204c5`
- `Linux 2.6.24`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
