CVE-2026-52923: ipc: limit next_id allocation to the valid ID range
In the Linux kernel, the following vulnerability has been resolved:
ipc: limit nextid allocation to the valid ID range
The checkpoint/restore sysctl path can request the next SysV IPC id through ids->nextid. ipcidralloc() currently forwards that request to idralloc() with an open-ended upper bound.
If the valid tail of the SysV IPC id space is full, the allocation can spill beyond ipcmni. 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 ipcidralloc() in the checkpoint/restore path.
1. ids->nextid is passed to:
idralloc(&ids->ipcsidr, new, ipcidtoidx(nextid), 0, ...)
2. The zero upper bound makes the allocation effectively open-ended. Once the valid SysV IPC tail is occupied, idralloc() can spill past ipcmni 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 << ipcmniseqshift()) + idx
4. Later removal goes through ipcrmid(), which uses:
ipcidtoidx(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, shmdestroy() 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 ipcmni so the checkpoint/restore path fails once the valid range is exhausted.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 6.6.143.1-1 - Configuration
Apply the resolution described: in ipc: limit next_id allocation to the valid ID range so ipc_idr_alloc() cannot call idr_alloc() with an open-ended upper bound (0) that allows allocation to spill past ipc_mni and leave stale IDR entries behind.
Linux kernel ipc_idr_alloc() (checkpoint/restore sysctl path) next_id allocation upper bound = bounded by ipc_mni (prevent open-ended upper bound by using ipc_mni)
Event History
Frequently Asked Questions
What is the severity of CVE-2026-52923?
The severity of CVE-2026-52923 is rated at 50.
What does CVE-2026-52923 address in the Linux kernel?
CVE-2026-52923 addresses the limitation of next_id allocation to the valid ID range in the IPC subsystem.
How do I fix CVE-2026-52923?
To fix CVE-2026-52923, update your Linux kernel to the latest version that includes the patch for this vulnerability.
What systems are affected by CVE-2026-52923?
CVE-2026-52923 affects systems running the vulnerable versions of the Linux kernel utilizing the IPC subsystem.
When was CVE-2026-52923 published?
CVE-2026-52923 was published on June 24, 2026.