From: AL-KERNEL <[email protected]>
To: [email protected]
Subject: [CVE-2026-52923][IMPORTANT] ipc: limit next_id allocation to the valid ID range
Date: Wed, 24 Jun 2026 05:09:43 -0400 [thread overview]
Message-ID: <[email protected]> (raw)
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/[email protected]
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 <[email protected]>
Signed-off-by: Ren Wei <[email protected]>
Reported-by: Yuan Tan <[email protected]>
Reported-by: Yifan Wu <[email protected]>
Reported-by: Juefei Pu <[email protected]>
Reported-by: Xin Liu <[email protected]>
Cc: Kees Cook <[email protected]>
Cc: Stanislav Kinsbursky <[email protected]>
Cc: Davidlohr Bueso <[email protected]>
Cc: <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
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 [email protected] (and both
send reply to CVE record itself too and see "reply" button below for howto reply).
reply other threads:[~2026-06-24 9:09 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --from, and --in-reply-to
switches of git-send-email(1) and next cmd tested by kernelcve.org admin:
git send-email --smtp-server=mail.kernelcve.org --smtp-server-port=25 --smtp-auth=none --from='Your Name <youremail@domain.is>' --suppress-cc=all --no-cc \
--in-reply-to=cve-2026-52923.a006a3d722e09e6a7e5c7aba@kernelcve.org \
[email protected] \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
The file with msg could look like this then:
cat YOUR_REPLY
Subject: Re: [CVE-2026-64206][MODERATE REGULAR] Bluetooth: L2CAP test
Just testing public-inbox replies.
Thanks,
MyName
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox