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 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.
Security readout for executives and security teams
Plain-English summary
CVE-2026-52923 is a Linux kernel bug in SysV IPC handling. A local user can trigger incorrect kernel bookkeeping so a shared-memory object is freed while a stale internal reference remains. Later reads of SysV IPC state can dereference freed memory, creating risk of local privilege escalation, data exposure, or denial of service.
Executive priority
Patch in the normal high-priority kernel update cycle, faster for shared or multi-tenant Linux systems. The issue requires local access, but successful exploitation could compromise confidentiality, integrity, and availability at kernel level.
Technical view
The bug is in ipc_idr_alloc() on the checkpoint/restore sysctl path. An open-ended idr_alloc() upper bound lets next_id allocation exceed ipc_mni when the valid tail is full. The returned IPC ID is encoded with the normal narrower index, so later ipc_rmid() removal can target the wrong slot and leave a dangling IDR entry.
Likely exposure
Exposure is limited to Linux systems running affected kernel builds where local users or local processes can exercise the SysV IPC checkpoint/restore path. The bundle does not establish remote exposure or identify specific affected distributions beyond Linux and Red Hat tracking references.
Exploitation context
The CVSS vector is local, low complexity, low privileges, no user interaction. The provided bundle marks KEV as false and gives no evidence of active exploitation or public exploit availability. Treat this as a serious local kernel memory-safety issue, not a confirmed in-the-wild campaign.
Researcher notes
The core flaw is stale pointer retention in the IPC IDR after an out-of-range allocation and mismatched index truncation. For shared memory, shm_destroy() frees the object while the high IDR slot remains, and later /proc/sysvipc/shm traversal can touch freed memory.
Mitigation direction
Update to a vendor kernel containing the referenced stable Linux fixes.
Check Red Hat and other distribution advisories for backported fixed package versions.
Prioritize multi-user, shared-host, and untrusted workload systems.
Limit unnecessary local shell access until patched.
Monitor vendor guidance for additional mitigations or affected-version clarifications.
Validation and detection
Inventory running Linux kernel versions across servers, desktops, and images.
Compare each kernel against vendor advisories for CVE-2026-52923.
Confirm whether referenced stable commits are present in custom kernels.
Review exposure on systems allowing untrusted local users or workloads.
Track Red Hat Bugzilla and CSAF/VEX status for distribution-specific decisions.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cwe · low confidence lookup
CWE-825: Exact CWE lookup
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
2CVSS vectors
5Timeline events
1ADP providers
12Source links
CVSS vector scores
2 official scores
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.
CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.
CWE-825 · source CWE mapping
Expired Pointer Dereference
Expired Pointer Dereference represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.