CVE-2026-52923: Linux Kernel IPC Checkpoint/Restore Use-After-Free Vulnerability
A memory safety bug in the Linux kernel's IPC (Inter-Process Communication) subsystem allows a local attacker with limited privileges to cause a denial of service or potentially leak sensitive information. The vulnerability exists in how the kernel allocates System V IPC identifiers during checkpoint/restore operations. When the valid ID space becomes full, the kernel can mistakenly allocate IDs beyond the legitimate range, creating orphaned memory references that may be accessed later through proc filesystem enumeration, leading to use-after-free conditions.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 7.8 HIGH · CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
- Weaknesses (CWE)
- CWE-401, CWE-825
- Affected products
- 12 configuration(s)
- Published / Modified
- 2026-06-24 / 2026-07-29
NVD description (verbatim)
In the Linux kernel, the following vulnerability has been resolved: ipc: limit next_id allocation to the valid ID range The checkpoint/restore sysctl path can request the next SysV IPC id through ids->next_id. ipc_idr_alloc() currently forwards that request to idr_alloc() with an open-ended upper bound. If the valid tail of the SysV IPC id space is full, the allocation can spill beyond ipc_mni. The returned SysV IPC id still uses the normal index encoding, so later lookup and removal can target the wrong slot. This leaves the real IDR entry behind and breaks the IDR state for the object. The bug is in ipc_idr_alloc() in the checkpoint/restore path. 1. ids->next_id is passed to: idr_alloc(&ids->ipcs_idr, new, ipcid_to_idx(next_id), 0, ...) 2. The zero upper bound makes the allocation effectively open-ended. Once the valid SysV IPC tail is occupied, idr_alloc() can spill past ipc_mni and allocate an entry beyond the valid IPC id range. 3. The new object id is still encoded with the narrower SysV IPC index width: new->id = (new->seq << ipcmni_seq_shift()) + idx 4. Later removal goes through ipc_rmid(), which uses: ipcid_to_idx(ipcp->id) That truncates the real IDR index. An object actually stored at a high index can then be removed as if it lived at a low in-range index. 5. For shared memory, shm_destroy() frees the current object anyway, but the real high IDR slot is left behind as a dangling pointer. 6. A subsequent walk of /proc/sysvipc/shm reaches the stale IDR entry and dereferences freed memory. Prevent this by bounding the requested allocation to ipc_mni so the checkpoint/restore path fails once the valid range is exhausted.
12 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
CVE-2026-52923 is a resource exhaustion and use-after-free vulnerability in the Linux kernel's IPC subsystem, specifically in the ipc_idr_alloc() function. The checkpoint/restore path requests System V IPC allocations via ids->next_id, forwarding requests to idr_alloc() with an unbounded upper limit (zero). Once the valid SysV IPC tail (bounded by ipc_mni) fills, idr_alloc() allocates beyond the valid range. The kernel encodes the allocated index into the object ID using the narrower SysV IPC encoding, creating an index mismatch. Subsequent removal via ipc_rmid() truncates the real IDR index during lookup, leaving dangling pointers in the IDR data structure. Proc filesystem walks (/proc/sysvipc/shm) then dereference freed memory. The fix bounds allocation requests to ipc_mni, causing checkpoint/restore to fail gracefully once the valid range exhausts.
Business impact
This vulnerability affects any deployment relying on container checkpoint/restore functionality or SysV IPC-heavy workloads running on vulnerable kernels. In cloud and containerization environments, triggering this bug could cause service disruption through kernel panics or memory corruption. The ability to dereference freed memory increases the window for privilege escalation or information disclosure if an attacker can control the timing and content of freed memory regions. Organizations using Kubernetes or similar platforms with container migration features should assess their exposure, as this vulnerability is reachable by unprivileged local processes.
Affected systems
All versions of the Linux kernel implementing the IPC subsystem are affected. The vulnerability exists in the checkpoint/restore code path, making any kernel with CONFIG_CHECKPOINT_RESTORE enabled vulnerable. Container orchestration systems (Kubernetes, Docker, OpenStack) that depend on kernel checkpoint/restore capabilities for live migration or process snapshotting are in scope. The bug is architectural to how SysV IPC ID allocation works and has no version cutoff; verify against upstream Linux kernel advisories and your distribution's kernel changelog for specific affected stable release versions.
Exploitability
Exploitation requires local system access with unprivileged user privileges (PR:L in the CVSS vector). No network access is needed. The attack is deterministic: an attacker fills the SysV IPC namespace to its limit, then triggers a checkpoint/restore allocation request, causing the kernel to allocate out-of-range. Subsequent proc enumeration dereferences the stale pointer. The attack surface is accessible to any local user and does not require special capabilities. Exploitation is feasible for motivated attackers but not trivial, as it requires understanding and triggering the checkpoint/restore path under specific namespace saturation conditions.
Remediation
Apply a kernel patch that bounds ipc_idr_alloc() requests to ipc_mni, preventing allocation beyond the valid SysV IPC range. This causes checkpoint/restore to fail cleanly once capacity is exhausted, rather than corrupting the IDR state. Patch availability depends on your Linux distribution and kernel branch. Check your vendor's security advisory for backported fixes to stable kernels. Temporary mitigation: disable CONFIG_CHECKPOINT_RESTORE at compile time if live migration is not required, or restrict access to the checkpoint/restore sysctl interface via LSM policies.
Patch guidance
Identify your running kernel version using `uname -r`. Cross-reference with your distribution's security bulletin for CVE-2026-52923. Major distributions (Red Hat, Canonical, SUSE, Debian) will publish backported kernel packages; prioritize applying these as standard security updates. For mainline kernels, look for commits addressing ipc_idr_alloc() boundary enforcement in the kernel stable trees. Verify the patch modifies the upper bound parameter in the idr_alloc() call from 0 to ipc_mni. After patching, reboot to activate the new kernel.
Detection guidance
Monitor for kernel warnings or panics mentioning 'IDR' or 'ipc' in the kernel log (journalctl, dmesg). Detection of active exploitation is difficult without intrusion detection tuned to SysV IPC namespace behavior. Organizations can audit sysctl writes to ipcs_idr or checkpoint/restore interface usage via auditd rules targeting 'msgget', 'shmget', and 'semget' syscalls under sustained namespace pressure. Proc filesystem reads of /proc/sysvipc/shm that precede kernel crashes may indicate exploitation attempts. Set up alerts for kernel panics in containers or VMs performing live migration.
Why prioritize this
This vulnerability merits immediate but not emergency attention. The CVSS score of 7.8 (HIGH) reflects local-only reach and the need for unprivileged access, yet the impact potential includes both confidentiality (memory leaks) and availability (DoS via panic). Organizations with active checkpoint/restore usage—primarily cloud and container platforms—should prioritize patching within standard monthly security cycles. Non-containerized or isolated deployments with disabled checkpoint/restore can defer, pending their next major kernel update.
Risk score, explained
The CVSS 3.1 score of 7.8 is derived from: Attack Vector=Local (reduces scope), Attack Complexity=Low (straightforward exploitation once conditions are met), Privileges Required=Low (unprivileged user), User Interaction=None (automatic upon trigger), Confidentiality/Integrity/Availability all High (use-after-free can corrupt memory, leak data, and crash the kernel). The score reflects the seriousness of memory safety issues balanced against the local-only attack surface.
Frequently asked questions
Does this vulnerability require network access or special privileges?
No to both. The attack is purely local and requires only standard unprivileged user permissions (PR:L). No CAP_SYS_ADMIN or network connectivity is needed. Any local user can potentially trigger it by manipulating the SysV IPC namespace.
How does checkpoint/restore relate to containers and container platforms?
Checkpoint/restore (CRIU) is a Linux kernel feature used by container platforms to snapshot and migrate running processes. Kubernetes, Docker, and other orchestration systems rely on it for live migration and stateless scaling. This vulnerability is reachable via that code path if the kernel has it enabled.
Can this be exploited without filling the entire IPC namespace?
The vulnerability requires the valid SysV IPC range to be full or nearly full to trigger the out-of-range allocation. An attacker must first exhaust the namespace, typically by allocating many message queues, shared memory segments, or semaphores. This is a prerequisite but feasible in multi-tenant environments.
Will a kernel panic definitely occur, or can silent memory corruption happen?
The outcome depends on post-corruption behavior. The primary risk is a use-after-free dereference when proc walks the IDR tree, which often causes a panic. However, memory corruption could theoretically be leveraged for privilege escalation or information disclosure before a panic occurs, depending on attacker sophistication and kernel memory layout.
This analysis is based on the vulnerability description and CVSS assessment provided. Verify all patch versions, affected kernel branches, and remediation timelines against official Linux kernel advisories and your distribution's security bulletins. CVSS scores and KEV status may change as new information emerges. This document does not constitute security advice and should be combined with your organization's threat model and asset inventory. No exploit code is provided or implied. For security-critical deployments, engage your kernel vendor and security team before applying patches. Source: NVD (public-domain), retrieved 2026-07-30. Analysis generated by SEC.co (claude-haiku-4-5).
Related vulnerabilities
- CVE-2026-46125HIGHLinux Kernel WiFi Driver Memory Safety Vulnerability
- CVE-2026-46166HIGHLinux Kernel mac80211 Use-After-Free in DFS Radar Detection
- CVE-2026-46176HIGHLinux RDMA mlx5 Use-After-Free in SRQ Initialization
- CVE-2026-46178HIGHLinux Kernel RDMA/mlx4 Resource Leak – HIGH Severity
- CVE-2026-46201HIGHLinux Xe Graphics Driver DMA-Buf Attachment Leak
- CVE-2026-46243HIGHLinux Kernel CIFS Credential Forgery Vulnerability (CVSS 7.1)
- CVE-2026-46303HIGHLinux isofs Rock Ridge Information Disclosure Vulnerability
- CVE-2026-46309HIGHLinux xe GPU Driver Memory Disclosure via Incoherent Cache Access