cve-2026-99244

osv_linux
Description

In the Linux kernel, the following vulnerability has been resolved: pid_namespace: prevent TIF_NOTIFY_SIGNAL from interrupting the reaper Since commit 7fea700e04bd ("zap_pid_ns_processes: clear TIF_NOTIFY_SIGNAL along with TIF_SIGPENDING") zap_pid_ns_processes() clears TIF_NOTIFY_SIGNAL before every kernel_wait4() call. Otherwise kernel_wait4() doesn't sleep and returns -ERESTARTSYS if signal_pending() is true and the reaper busy-waits. But clearing TIF_NOTIFY_SIGNAL doesn't fix it. It can get raised again. For example, klp_send_signals() sets it raw against any task that hasn't transitioned yet. And it keeps sending it until the livepatch finishes. The sleep loop waiting for pid_allocated to drop has the same problem and it doesn't even clear anything. So a schedule() in TASK_INTERRUPTIBLE returns immediately. Use a no_notify_signal guard. signal_pending() will ignore TIF_NOTIFY_SIGNAL and the pid namespace reaper sleeps until a child exits or free_pid() wakes it.

Timeline
Published
unknown
Last Modified
unknown
CVSS Details

CVSS details not available.

Affected Products

No product information available.

References
Linked Vulnerabilities

No linked vulnerabilities found.

{
  "affected": [
    {
      "database_specific": {
        "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-99244.json"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "edd2754a62bee8d97b4808a15de024f66a1ddccf"
            },
            {
              "fixed": "2c20ace1698d03a23467351be1d281e89b36ade3"
            }
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "type": "GIT"
        },
        {
          "events": [
            {
              "introduced": "3466abafa9f4f81a869da828e52a12f693175ec2"
            },
            {
              "fixed": "9ab0324f4868eeb20c63f063a1e5bc01d5539212"
            }
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "type": "GIT"
        },
        {
          "events": [
            {
              "introduced": "7fea700e04bd3f424c2d836e98425782f97b494e"
            },
            {
              "fixed": "30b274508c743f243c82904954c4e416d7143d4c"
            },
            {
              "fixed": "70178691c467c8f9f722765299fd8524c3121a35"
            },
            {
              "fixed": "3d15ac36ce174477efa5365e424dbd47950fd2b9"
            },
            {
              "fixed": "f46cd8241d9b83f2279cc0db3e9d3e181b548a59"
            },
            {
              "fixed": "5c0985dd3c32fc2bbd0e8beaf13cf52cd97376a2"
            }
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "type": "GIT"
        },
        {
          "events": [
            {
              "introduced": "6.1.95"
            },
            {
              "fixed": "6.1.191"
            }
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "type": "GIT"
        },
        {
          "events": [
            {
              "introduced": "6.6.35"
            },
            {
              "fixed": "6.6.161"
            }
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "type": "GIT"
        },
        {
          "events": [
            {
              "introduced": "5.10.221"
            },
            {
              "fixed": "5.11"
            }
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "type": "GIT"
        },
        {
          "events": [
            {
              "introduced": "5.15.162"
            },
            {
              "fixed": "5.16"
            }
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "type": "GIT"
        },
        {
          "events": [
            {
              "introduced": "6.9.6"
            },
            {
              "fixed": "6.10"
            }
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "type": "GIT"
        },
        {
          "events": [
            {
              "introduced": "82c7acf9a12c9b4e4b0aba531de82b4e39a345c8"
            }
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "type": "GIT"
        },
        {
          "events": [
            {
              "introduced": "8e69e589f233ca2c9631f5af2b94f95dfc2ba804"
            }
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "type": "GIT"
        },
        {
          "events": [
            {
              "introduced": "09ab5b424b17cfe633db58bb2f9edbaf9484cf20"
            }
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "type": "GIT"
        }
      ],
      "versions": [
        "v6.1.190",
        "v6.1.189",
        "v6.1.188",
        "v6.1.187",
        "v6.1.186",
        "v6.1.185",
        "v6.1.184",
        "v6.1.183",
        "v6.1.182",
        "v6.1.181",
        "v6.1.180",
        "v6.1.179",
        "v6.1.178",
        "v6.1.177",
        "v6.1.176",
        "v6.1.175",
        "v6.1.174",
        "v6.1.173",
        "v6.1.172",
        "v6.1.171",
        "v6.1.170",
        "v6.1.169",
        "v6.1.168",
        "v6.1.167",
        "v6.1.166",
        "v6.1.165",
        "v6.1.164",
        "v6.1.163",
        "v6.1.162",
        "v6.1.161",
        "v6.1.160",
        "v6.1.159",
        "v6.1.158",
        "v6.1.157",
        "v6.1.156",
        "v6.1.155",
        "v6.1.154",
        "v6.1.153",
        "v6.1.152",
        "v6.1.151",
        "v6.1.150",
        "v6.1.149",
        "v6.1.148",
        "v6.1.147",
        "v6.1.146",
        "v6.1.145",
        "v6.1.144",
        "v6.1.143",
        "v6.1.142",
        "v6.1.141",
        "v6.1.140",
        "v6.1.139",
        "v6.1.138",
        "v6.1.137",
        "v6.1.136",
        "v6.1.135",
        "v6.1.134",
        "v6.1.133",
        "v6.1.132",
        "v6.1.131",
        "v6.1.130",
        "v6.1.129",
        "v6.1.128",
        "v6.1.127",
        "v6.1.126",
        "v6.1.125",
        "v6.1.124",
        "v6.1.123",
        "v6.1.122",
        "v6.1.121",
        "v6.1.120",
        "v6.1.119",
        "v6.1.118",
        "v6.1.117",
        "v6.1.116",
        "v6.1.115",
        "v6.1.114",
        "v6.1.113",
        "v6.1.112",
        "v6.1.111",
        "v6.1.110",
        "v6.1.109",
        "v6.1.108",
        "v6.1.107",
        "v6.1.106",
        "v6.1.105",
        "v6.1.104",
        "v6.1.103",
        "v6.1.102",
        "v6.1.101",
        "v6.1.100",
        "v6.1.99",
        "v6.1.98",
        "v6.1.97",
        "v6.1.96",
        "v6.1.95",
        "v6.6.160",
        "v6.6.159",
        "v6.6.158",
        "v6.6.157",
        "v6.6.156",
        "v6.6.155",
        "v6.6.154",
        "v6.6.153",
        "v6.6.152",
        "v6.6.151",
        "v6.6.150",
        "v6.6.149",
        "v6.6.148",
        "v6.6.147",
        "v6.6.146",
        "v6.6.145",
        "v6.6.144",
        "v6.6.143",
        "v6.6.142",
        "v6.6.141",
        "v6.6.140",
        "v6.6.139",
        "v6.6.138",
        "v6.6.137",
        "v6.6.136",
        "v6.6.135",
        "v6.6.134",
        "v6.6.133",
        "v6.6.132",
        "v6.6.131",
        "v6.6.130",
        "v6.6.129",
        "v6.6.128",
        "v6.6.127",
        "v6.6.126",
        "v6.6.125",
        "v6.6.124",
        "v6.6.123",
        "v6.6.122",
        "v6.6.121",
        "v6.6.120",
        "v6.6.119",
        "v6.6.118",
        "v6.6.117",
        "v6.6.116",
        "v6.6.115",
        "v6.6.114",
        "v6.6.113",
        "v6.6.112",
        "v6.6.111",
        "v6.6.110",
        "v6.6.109",
        "v6.6.108",
        "v6.6.107",
        "v6.6.106",
        "v6.6.105",
        "v6.6.104",
        "v6.6.103",
        "v6.6.102",
        "v6.6.101",
        "v6.6.100",
        "v6.6.99",
        "v6.6.98",
        "v6.6.97",
        "v6.6.96",
        "v6.6.95",
        "v6.6.94",
        "v6.6.93",
        "v6.6.92",
        "v6.6.91",
        "v6.6.90",
        "v6.6.89",
        "v6.6.88",
        "v6.6.87",
        "v6.6.86",
        "v6.6.85",
        "v6.6.84",
        "v6.6.83",
        "v6.6.82",
        "v6.6.81",
        "v6.6.80",
        "v6.6.79",
        "v6.6.78",
        "v6.6.77",
        "v6.6.76",
        "v6.6.75",
        "v6.6.74",
        "v6.6.73",
        "v6.6.72",
        "v6.6.71",
        "v6.6.70",
        "v6.6.69",
        "v6.6.68",
        "v6.6.67",
        "v6.6.66",
        "v6.6.65",
        "v6.6.64",
        "v6.6.63",
        "v6.6.62",
        "v6.6.61",
        "v6.6.60",
        "v6.6.59",
        "v6.6.58",
        "v6.6.57",
        "v6.6.56",
        "v6.6.55",
        "v6.6.54",
        "v6.6.53",
        "v6.6.52",
        "v6.6.51",
        "v6.6.50",
        "v6.6.49",
        "v6.6.48",
        "v6.6.47",
        "v6.6.46",
        "v6.6.45",
        "v6.6.44",
        "v6.6.43",
        "v6.6.42",
        "v6.6.41",
        "v6.6.40",
        "v6.6.39",
        "v6.6.38",
        "v6.6.37",
        "v6.6.36",
        "v6.6.35",
        "v5.10.273",
        "v5.10.272",
        "v5.10.271",
        "v5.10.270",
        "v5.10.269",
        "v5.10.268",
        "v5.10.267",
        "v5.10.266",
        "v5.10.265",
        "v5.10.264",
        "v5.10.263",
        "v5.10.262",
        "v5.10.261",
        "v5.10.260",
        "v5.10.259",
        "v5.10.258",
        "v5.10.257",
        "v5.10.256",
        "v5.10.255",
        "v5.10.254",
        "v5.10.253",
        "v5.10.252",
        "v5.10.251",
        "v5.10.250",
        "v5.10.249",
        "v5.10.248",
        "v5.10.247",
        "v5.10.246",
        "v5.10.245",
        "v5.10.244",
        "v5.10.243",
        "v5.10.242",
        "v5.10.241",
        "v5.10.240",
        "v5.10.239",
        "v5.10.238",
        "v5.10.237",
        "v5.10.236",
        "v5.10.235",
        "v5.10.234",
        "v5.10.233",
        "v5.10.232",
        "v5.10.231",
        "v5.10.230",
        "v5.10.229",
        "v5.10.228",
        "v5.10.227",
        "v5.10.226",
        "v5.10.225",
        "v5.10.224",
        "v5.10.223",
        "v5.10.222",
        "v5.10.221",
        "v5.15.224",
        "v5.15.223",
        "v5.15.222",
        "v5.15.221",
        "v5.15.220",
        "v5.15.219",
        "v5.15.218",
        "v5.15.217",
        "v5.15.216",
        "v5.15.215",
        "v5.15.214",
        "v5.15.213",
        "v5.15.212",
        "v5.15.211",
        "v5.15.210",
        "v5.15.209",
        "v5.15.208",
        "v5.15.207",
        "v5.15.206",
        "v5.15.205",
        "v5.15.204",
        "v5.15.203",
        "v5.15.202",
        "v5.15.201",
        "v5.15.200",
        "v5.15.199",
        "v5.15.198",
        "v5.15.197",
        "v5.15.196",
        "v5.15.195",
        "v5.15.194",
        "v5.15.193",
        "v5.15.192",
        "v5.15.191",
        "v5.15.190",
        "v5.15.189",
        "v5.15.188",
        "v5.15.187",
        "v5.15.186",
        "v5.15.185",
        "v5.15.184",
        "v5.15.183",
        "v5.15.182",
        "v5.15.181",
        "v5.15.180",
        "v5.15.179",
        "v5.15.178",
        "v5.15.177",
        "v5.15.176",
        "v5.15.175",
        "v5.15.174",
        "v5.15.173",
        "v5.15.172",
        "v5.15.171",
        "v5.15.170",
        "v5.15.169",
        "v5.15.168",
        "v5.15.167",
        "v5.15.166",
        "v5.15.165",
        "v5.15.164",
        "v5.15.163",
        "v5.15.162",
        "v6.9.12",
        "v6.9.11",
        "v6.9.10",
        "v6.9.9",
        "v6.9.8",
        "v6.9.7",
        "v6.9.6"
      ]
    },
    {
      "database_specific": {
        "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-99244.json"
      },
      "package": {
        "ecosystem": "Linux",
        "name": "Kernel"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0"
            },
            {
              "fixed": "6.1.191"
            }
          ],
          "type": "ECOSYSTEM"
        },
        {
          "events": [
            {
              "introduced": "6.2.0"
            },
            {
              "fixed": "6.6.161"
            }
          ],
          "type": "ECOSYSTEM"
        },
        {
          "events": [
            {
              "introduced": "6.7.0"
            },
            {
              "fixed": "6.12.115"
            }
          ],
          "type": "ECOSYSTEM"
        },
        {
          "events": [
            {
              "introduced": "6.10.0"
            },
            {
              "fixed": "6.18.60"
            }
          ],
          "type": "ECOSYSTEM"
        },
        {
          "events": [
            {
              "introduced": "6.13.0"
            },
            {
              "fixed": "7.2.14"
            }
          ],
          "type": "ECOSYSTEM"
        },
        {
          "events": [
            {
              "introduced": "6.19.0"
            },
            {
              "fixed": "7.3.1"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    }
  ],
  "database_specific": {
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/99xxx/CVE-2026-99244.json"
  },
  "details": "In the Linux kernel, the following vulnerability has been resolved:\n\npid_namespace: prevent TIF_NOTIFY_SIGNAL from interrupting the reaper\n\nSince commit 7fea700e04bd (\"zap_pid_ns_processes: clear\nTIF_NOTIFY_SIGNAL along with TIF_SIGPENDING\") zap_pid_ns_processes()\nclears TIF_NOTIFY_SIGNAL before every kernel_wait4() call. Otherwise\nkernel_wait4() doesn't sleep and returns -ERESTARTSYS if\nsignal_pending() is true and the reaper busy-waits.\n\nBut clearing TIF_NOTIFY_SIGNAL doesn't fix it. It can get raised again.\nFor example, klp_send_signals() sets it raw against any task that hasn't\ntransitioned yet. And it keeps sending it until the livepatch finishes.\n\nThe sleep loop waiting for pid_allocated to drop has the same problem\nand it doesn't even clear anything. So a schedule() in\nTASK_INTERRUPTIBLE returns immediately.\n\nUse a no_notify_signal guard. signal_pending() will ignore\nTIF_NOTIFY_SIGNAL and the pid namespace reaper sleeps until a child\nexits or free_pid() wakes it.",
  "id": "CVE-2026-99244",
  "modified": "2026-11-05T03:31:30.003405646Z",
  "published": "2026-11-03T11:15:14.715Z",
  "references": [
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/2c20ace1698d03a23467351be1d281e89b36ade3"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/30b274508c743f243c82904954c4e416d7143d4c"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/3d15ac36ce174477efa5365e424dbd47950fd2b9"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/5c0985dd3c32fc2bbd0e8beaf13cf52cd97376a2"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/70178691c467c8f9f722765299fd8524c3121a35"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/9ab0324f4868eeb20c63f063a1e5bc01d5539212"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/f46cd8241d9b83f2279cc0db3e9d3e181b548a59"
    },
    {
      "type": "ADVISORY",
      "url": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/99xxx/CVE-2026-99244.json"
    },
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-99244"
    },
    {
      "type": "PACKAGE",
      "url": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
    }
  ],
  "schema_version": "1.9.2",
  "summary": "pid_namespace: prevent TIF_NOTIFY_SIGNAL from interrupting the reaper"
}
View JSON API Download JSON