From mboxrd@z Thu Jan 1 00:00:00 1970 From: AL-KERNEL To: kernel-cve@kernelcve.org Subject: [CVE-2026-52923][IMPORTANT] ipc: limit next_id allocation to the valid ID range Date: Wed, 24 Jun 2026 05:09:43 -0400 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-AL-KERNEL-CVE: CVE-2026-52923 X-AL-KERNEL-Priority: IMPORTANT X-AL-KERNEL-Severity: IMPORTANT X-AL-KERNEL-Base-Severity: IMPORTANT X-AL-KERNEL-KPANIC: YES X-AL-KERNEL-ActionableScore: 7 X-AL-KERNEL-ActionableScore-Lower: 5 X-AL-KERNEL-Commit: 3bbe2bb9111ce6967a951bfac79af142d816fae5 List-Id: CVE: CVE-2026-52923 Priority: IMPORTANT AL-KERNEL base severity: IMPORTANT KPANIC flag: YES Patch: ipc: limit next_id allocation to the valid ID range Commit: 3bbe2bb9111ce6967a951bfac79af142d816fae5 Upstream patch: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=3bbe2bb9111ce6967a951bfac79af142d816fae5 Original CVE announcement: https://lore.kernel.org/linux-cve-announce/?q=CVE-2026-52923 Analysis date: Wed, 24 Jun 2026 05:09:43 -0400 ActionableScore: 7 ActionableScore lower bound: 5 Actionable bucket: Strong Important candidate / Actionable Moderate at minimum Manual review required: YES Summary: A local SysV IPC checkpoint/restore allocation bug can create an out-of-range IDR entry that survives object removal as a stale pointer, allowing a later `/proc/sysvipc/shm` walk to dereference freed shared-memory state and potentially crash the kernel or require review for UAF-based privilege escalation. ====================================================================== ABOUT THIS REPORT ====================================================================== The original Linux kernel CVE announcement for CVE-2026-52923 is available here: https://lore.kernel.org/linux-cve-announce/?q=CVE-2026-52923 The original announcement does not normally provide a security severity estimate, CVSS assessment, or enough information to determine whether the reported kernel bug represents a practically relevant security issue. This report was generated by AL-KERNEL, an AI-assisted Linux kernel vulnerability analysis system developed by Alexander Larkin. It combines an autonomous classifier with LLM-assisted technical analysis and a separate ActionableScore mechanism. The purpose of this report is to prioritize Linux kernel CVEs before manual review, identify cases that require prompt investigation, and support automatic closure of issues that are unlikely to have meaningful security impact. Published priority for this report: IMPORTANT Manual review required: YES A detailed explanation of the methodology and priority rules is included at the end of this message. ====================================================================== AL-KERNEL CLASSIFICATION RESULT ====================================================================== CVE-2026-52923 IMPORTANT CHECK Maybe valid. Check manually. Hints by AL-KERNEL: The best (paranoid) CVSS is 'AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H';*CWE-416;*CWE-664;CWE-682;Other CVSS 'AV:L/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:H';BEST CVSS score: '7';DESCR 'SysV IPC checkpoint restore next_id allocation can escape the valid IPC id range because ipc_idr_alloc used an open ended idr_alloc upper bound. A crafted local sequence can leave a shared memory object stored in an out of range IDR slot, while later removal truncates the encoded id and removes a different in range slot. This can leave a stale IDR pointer to freed shared memory state, and a later /proc/sysvipc/shm walk can dereference freed memory. For the CVSS the PR:L is used because a local user or containerized process with namespace checkpoint restore IPC controls may be able to drive the sysctl path and SysV IPC allocation sequence, while full host root is not always required in namespaced deployments. The issue is not network reachable. Impact is at least local denial of service via kernel crash, and the UAF class makes limited or high confidentiality and integrity impact plausible enough for manual review.';YES REQUIRES MANUAL CHECK; ,and ActionableScore result is Strong Important candidate / Actionable Moderate at minimum (with actual score 7) YES DANGER UAF KPANIC KPANIC INCREASED_TO_HIGH_BASED_ON_ACTIONABLESCOREHIGHEREQTHAN7 NO NO checked ====================================================================== ACTIONABLESCORE ANALYSIS ====================================================================== ActionableScore=7 ActionableScoreLower=5 ## 1. ActionableScore * Conservative score: **5** * Paranoid score: **7** * Final recommended bucket: **Strong Important candidate / Actionable Moderate at minimum**:: ## 2. Signal breakdown Conservative signals: * **Local unprivileged trigger: +1**. The affected path is local SysV IPC checkpoint/restore ID control. In user namespace or IPC namespace deployments, a non-host-root process may plausibly gain the needed namespace-scoped capability. * **Weak LPE concern: +1**. The bug creates a stale IDR entry pointing to freed shared-memory state, but the patch does not show attacker-controlled reclaim, controlled overwrite, callback dispatch, or a demonstrated replacement primitive. * **Generic memory corruption, strong primitive: +2**. This is a real stale pointer / UAF condition: the high out-of-range IDR slot can retain a pointer after the object is freed. * **Real lifetime corruption: +1**. The core issue is incorrect lifetime and removal semantics for an IDR entry after the encoded IPC ID is truncated. * **Reliable kernel crash / strong DoS: +1**. A later `/proc/sysvipc/shm` walk can dereference freed memory and plausibly crash the kernel. * **Special crafted state required: -1**. Triggering requires manipulating `next_id`, exhausting or occupying the valid tail of the SysV IPC ID range, and then causing removal plus procfs traversal. Paranoid additional signals: * **Confidentiality impact plausible: +1**. A procfs walk over freed shared-memory metadata may expose stale or reused kernel object contents in some reuse scenarios, though this is not demonstrated. * **Integrity impact plausible: +1**. UAF over shared-memory IPC metadata may theoretically permit state corruption if reclaimed with attacker-influenced objects, but this remains unproven. ## 3. Reachability analysis The bug is **not network reachable**. It requires local interaction with SysV IPC checkpoint/restore `next_id` allocation behavior and subsequent shared-memory object creation/removal. In typical host deployments this path may require privileged namespace-scoped control such as checkpoint/restore-related capability, but in systems allowing unprivileged user namespaces or containers with delegated IPC controls, the practical privilege level can be closer to **local low privilege** than full host root. The path is not a normal packet-processing or remote API path. Realistic exploitation requires a crafted local sequence and enough control over SysV IPC ID allocation pressure to force allocation beyond `ipc_mni`. ## 4. Severity interpretation This is more than an ordinary Moderate resource or validation bug because the commit explicitly describes a stale IDR entry and later dereference of freed shared-memory state. Realistically, the most supported impact is **local kernel crash / DoS**. However, because the bug is a concrete UAF/lifetime corruption in kernel IPC metadata, it should not be auto-closed as low-risk without manual review. Theoretical privilege escalation is plausible but not demonstrated. There is no direct evidence in the patch of attacker-controlled reclaim, arbitrary write, type confusion, or callback control, so the conservative score stays at **Actionable Moderate**. The paranoid score reaches **Strong Important candidate** due to the UAF class and namespace-reachable local attack surface. ## 5. One-sentence report phrase A local SysV IPC checkpoint/restore allocation bug can create an out-of-range IDR entry that survives object removal as a stale pointer, allowing a later `/proc/sysvipc/shm` walk to dereference freed shared-memory state and potentially crash the kernel or require review for UAF-based privilege escalation. ## 6. Manual review recommendation **MANUAL CHECK REQUIRED** Reason: the patch describes a real stale pointer / UAF candidate in SysV IPC IDR state, not merely a warning or resource leak. The demonstrated impact is DoS, but the memory lifetime primitive is strong enough to require manual assessment for possible reclaim-based escalation. ====================================================================== UPSTREAM PATCH SUMMARY ====================================================================== Patch: ipc: limit next_id allocation to the valid ID range Commit: 3bbe2bb9111ce6967a951bfac79af142d816fae5 Upstream URL: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=3bbe2bb9111ce6967a951bfac79af142d816fae5 Commit description: 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. Link: https://lore.kernel.org/cover.1778336914.git.linpu5433@gmail.com Link: https://lore.kernel.org/2eebe949bfa7d1f6e13b5be6a92c64c850ce9d45.1778336914.git.linpu5433@gmail.com Fixes: 03f5956 ("ipc: add sysctl to specify desired next object id") Signed-off-by: Linpu Yu Signed-off-by: Ren Wei Reported-by: Yuan Tan Reported-by: Yifan Wu Reported-by: Juefei Pu Reported-by: Xin Liu Cc: Kees Cook Cc: Stanislav Kinsbursky Cc: Davidlohr Bueso Cc: Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman Changed files: ipc/util.c Diff excerpt: Not included in this email. See the upstream URL for the full patch. Full patch: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=3bbe2bb9111ce6967a951bfac79af142d816fae5 ====================================================================== DETAILED REPORT METHODOLOGY ====================================================================== The original Linux kernel CVE announcement for CVE-2026-52923 can be found here: https://lore.kernel.org/linux-cve-announce/?q=CVE-2026-52923 The original CVE announcement normally does not include a security-level estimate. In particular, it may not contain a CVSS assessment, an impact level, or enough information to determine whether the reported bug is a practically relevant security issue. One purpose of this parallel CVE list is to provide that missing technical and prioritization information. The original goal of the AL-KERNEL project was to prioritize Linux kernel CVE analysis automatically before manual review. The system can also help identify non-security issues that may be suitable for automatic closure. This report was generated by AL-KERNEL, an AI-assisted Linux kernel vulnerability analysis system developed by Alexander Larkin. The first analysis stage combines an autonomous classifier with additional LLM-based analysis. The autonomous classifier runs locally on a CPU and is based on a backpropagation neural network. Together, these mechanisms produce a technical vulnerability description, identify likely weakness types, estimate CVSS severity, and provide input for ActionableScore. Two CVSS estimates are retained because incomplete kernel vulnerability information often permits more than one defensible interpretation: Conservative CVSS vector: AV:L/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:H The Best / paranoid CVSS vector: AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H The Best / paranoid CVSS score: 7 The conservative vector represents a lower-impact interpretation. The Best/paranoid vector intentionally represents a plausible upper-bound interpretation and should not automatically be treated as demonstrated real-world impact. CVSS may also need to be adjusted for a particular Linux deployment, because actual reachability, privileges, enabled kernel configuration, hardware, namespaces, exposed device nodes, and other environmental conditions can differ significantly between systems. A separate ActionableScore mechanism evaluates practical remediation urgency. Its analysis may include reachability, attack prerequisites, subsystem exposure, memory-corruption characteristics, denial-of-service reliability, and possible confidentiality, integrity, or privilege-escalation impact. Conservative ActionableScore: 5 Paranoid ActionableScore: 7 The final base severity is taken directly from the second tab-separated field of the AL-KERNEL classification result. ActionableScore does not replace or independently override that final AL-KERNEL decision, and if ActionableScore adjusted impact level of ALKERNEL, then you would see self-readable flags above like INCREASED_TO_HIGH_BASED_ON_ACTIONABLESCOREHIGHEREQTHAN7. For an AL-KERNEL result of MODERATE, this report uses the following additional presentation split: ActionableScore below 5 -> MODERATE REGULAR ActionableScore 5 or more -> MODERATE 7.0 The distinction between MODERATE REGULAR and MODERATE 7.0 makes it possible to identify Moderate issues that should receive manual analysis and fixes before lower-priority MODERATE REGULAR issues. In many cases, MODERATE REGULAR fixes may wait for a later rebase or routine update. There is one override in which MODERATE REGULAR becomes MODERATE 7.0 even when the ActionableScore is below 5. When the AL-KERNEL result contains the KPANIC flag, a MODERATE result is always presented as MODERATE 7.0. The KPANIC flag selected with few regexps without usage of AI at all, so it helps to detect cases when Kernel Crash happens and similar (to filter False-Negative results from the LLM usage). KPANIC indicates that a reliable kernel crash, kernel panic, or similarly serious kernel availability impact was identified by the classification workflow. AL-KERNEL base severity for this report: IMPORTANT KPANIC detected for this report: YES Published priority for this report (same as in Subject): IMPORTANT These results are intended to support engineering triage. They are machine-generated estimates, and cases marked for manual review should be validated by a human security engineer before final disposition. For more info read docs linked from here: https://kernelcve.org/ (and you can submit you own patch there to generate such a report for non-existant CVE-id yet). Note that in many cases this AI tool selects higher severity, than real is (means you can expect Importants instead of Moderate 7.0 or Moderates 7.0 instead of regular Moderates). If you see such cases, please use reply email interface to add additional manual analyses info to this particular CVE. And please, please, let me know when you see Lows instead of Importants or Important instead of Low (because particular for such cases I need to tune this AI tool to make it better for this one and next similar). My contact email for such notifications is alexanjelausa@gmail.com (and both send reply to CVE record itself too and see "reply" button below for howto reply).