From: AL-KERNEL <[email protected]>
To: [email protected]
Subject: [CVE-2026-80982][MODERATE 7.0] net/smc: fix use-after-free in smc_rx_pipe_buf_release()
Date: Fri, 11 Sep 2026 19:11:24 -0400 [thread overview]
Message-ID: <[email protected]> (raw)
CVE: CVE-2026-80982
Priority: MODERATE 7.0
AL-KERNEL base severity: MODERATE
KPANIC flag: YES
Patch: net/smc: fix use-after-free in smc_rx_pipe_buf_release()
Commit: 6a644a7340df978785f3109d1e0726a982ce2c6f
Upstream patch: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=6a644a7340df978785f3109d1e0726a982ce2c6f
Original CVE announcement: https://lore.kernel.org/linux-cve-announce/?q=CVE-2026-80982
Analysis date: Fri, 11 Sep 2026 19:11:24 -0400
ActionableScore: 6
ActionableScore lower bound: 5
Actionable bucket: Actionable Moderate / Strong Important candidate requiring manual review
Manual review required: YES
Summary:
No one-sentence report phrase was found.
======================================================================
ABOUT THIS REPORT
======================================================================
The original Linux kernel CVE announcement for CVE-2026-80982 is available here:
https://lore.kernel.org/linux-cve-announce/?q=CVE-2026-80982
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: MODERATE 7.0
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-80982 MODERATE https://www.kernelcve.org/list/?q=CVE-2026-80982 CHECK WITH IMPACT FROM ORIG NN MODERATE 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-362;CWE-367;Other CVSS 'AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H';BEST CVSS score: '7';DESCR 'An SMC splice receive path race can cause a use-after-free in smc_rx_pipe_buf_release() because the socket state was checked before taking the socket lock. A concurrent close can run smc_conn_free() and release conn rmb_desc and conn lgr while a pipe buffer release later calls smc_rx_update_cons() and dereferences those freed connection objects. For the CVSS the PR:L is selected because reliable triggering needs a local user context able to create and use an SMC socket and splice data into a pipe. The issue is not a direct unauthenticated network trigger, although a remote SMC peer may influence timing by sending data or closing the connection. Impact is at least local denial of service via kernel crash. Because the primitive is an explicit UAF in networking code, the paranoid impact keeps C:H/I:H/A:H for manual review sensitivity.';YES REQUIRES MANUAL CHECK; ,and ActionableScore result is Actionable Moderate / Strong Important candidate requiring manual review (with actual score 6) YES DANGER UAF LINUS TEST KPANIC INCREASED_TO_HIGH_BASED_ON_GUESSCVSS DECREASED_TO_MODERATE7_BASED_ON_FALSEPOSCHECKOFDH NO NO checked
======================================================================
ACTIONABLESCORE ANALYSIS
======================================================================
ActionableScore=6
ActionableScoreLower=5
PrimitiveClass=CLASS_B
RealUAF=YES
HostAdminRequired=NO
NamespaceScopedPrivilege=NO
ImportantCandidate=YES
ManualReview=REQUIRED
AutoDowngradeAllowed=NO
1. ActionableScore
* Raw conservative score: 4
* Conservative score: 5
* Applied conservative floor/cap: FLOOR 5 applied because a real below-host-admin active-object UAF is established and stale structured connection state is consumed after lifetime end.
* Raw paranoid score: 6
* Paranoid score: 6
* Applied paranoid floor/cap: none
* Final recommended bucket: **Actionable Moderate / Strong Important candidate requiring manual review**::
2. Signal breakdown
Conservative positive signals:
* +2 Real UAF / active lifetime violation. The commit directly states that `smc_conn_free()` can release `conn->rmb_desc` and `conn->lgr`, while `smc_rx_pipe_buf_release()` later calls `smc_rx_update_cons()` and dereferences that released state.
* +1 Reliable kernel crash / strong DoS. A post-lifetime dereference of connection receive-buffer and link-group state can plausibly fault the kernel.
* +1 Local below-host-admin trigger. The vulnerable path is reached through local SMC socket and splice usage, and the supplied context supports PR:L rather than host-admin-only reachability.
Conservative floor:
* FLOOR 5 applied. The stale use is not just passive metadata. It reaches active structured SMC connection state and consumer-update processing after the associated receive-buffer/link-group lifetime may have ended.
Paranoid additional signals:
* +1 Attacker-influenced lifetime manipulation. A local attacker can plausibly drive the relevant socket, splice, pipe-buffer release, and close timing repeatedly.
* +1 Structured stale-object exploitation leverage. The stale path consumes active connection fields through `smc_rx_update_cons()`, including receive-buffer descriptor and link-group traversal, rather than only performing an immediate simple NULL dereference.
Non-awarded or constrained signals:
* +0 Strong LPE / controlled reclaim. No controlled reclaim, object replacement, callback control, arbitrary read/write, or credential manipulation is demonstrated.
* +0 Concrete repeated release/refcount. No second lifetime/refcount mutation on the exact same dangling reference is established by the shown patch.
* +0 Extra availability. The crash/DoS is already counted once.
* +0 Direct remote reachability. The bug is in networking code, but the complete trigger requires a local socket/splice actor. A remote SMC peer may influence timing but is not shown to trigger the bug unauthenticated by itself.
* +0 Confidentiality / integrity as direct consequences. C/I are not demonstrated. The paranoid score reflects unresolved UAF exploitation leverage, not a proven disclosure or write primitive.
* No race penalty applied. Although this is a race, the local actor can plausibly retry the close and pipe-release sequence. The evidence does not prove a rare one-shot externally uncontrollable timing condition.
Repeated-release/refcount check:
* First release can end lifetime: yes for `rmb_desc` on the `is_reg_err` path, and the link-group related state can be released by `smc_conn_free()`.
* Exact same reference survives for a second lifetime mutation: not established.
* Second operation is a real lifetime/refcount mutation: not established.
* +1 Concrete repeated release/refcount awarded: no.
* Paranoid repeated-refcount leverage awarded: no.
* FLOOR 5 applied: yes, but due to active structured stale use below host admin, not due to repeated release/refcount.
3. Reachability analysis
The evaluated attacker is a local user/process able to create and use an SMC socket and splice received data into a pipe. The local process can also close the socket or otherwise participate in the close/release timing that races with pipe-buffer release.
Host-admin-equivalent privilege is not positively established as required. The supplied prior CVSS hint uses PR:L, and the path is ordinary socket/splice behavior rather than a host administration API. Therefore `HostAdminRequired=NO`.
No namespace-scoped capability is central to the analysis. This is not scored as a CAP_NET_ADMIN or namespace-created-object case. Therefore `NamespaceScopedPrivilege=NO`.
The issue is not directly network reachable in the same sense as a protocol parser reachable only by remote packets. A remote SMC peer may influence timing by sending data or closing the peer side, but the complete vulnerable sequence depends on local splice and pipe-buffer release behavior.
Prior host setup may be required in practice for SMC availability and usable SMC transport, but the supplied evidence does not establish a host-admin-only trigger once SMC is available. No rare hardware-only penalty is applied from the patch alone.
Race repeatability appears meaningful because socket/splice/close operations can be retried by the local actor. The race remains relevant for exploitability, but it is not scored as a hard one-shot race.
4. Primitive and severity interpretation
The exact primitive is a race-driven use-after-free / stale lifetime use in `smc_rx_pipe_buf_release()`. `smc_rx_splice()` keeps the `smc_sock` alive by taking socket references for pipe entries, but the connection resources are not equivalently protected. A concurrent close can run `smc_conn_free()` and release receive-buffer and link-group resources before pipe-buffer release calls `smc_rx_update_cons()`.
This is an active structured-object UAF rather than fixed stale storage. The stale state is connection-related networking state, including `rmb_desc` and `lgr`, and the stale path performs consumer update and traversal logic.
The demonstrated consequence is local kernel crash / DoS. The speculative consequence is stronger exploitation through post-lifetime structured state consumption, but controlled reclaim, arbitrary kernel read/write, and LPE are not established.
There is no concrete repeated release/refcount operation shown on the exact same dangling reference. This is therefore not a double-release/refcount case.
PrimitiveClass is CLASS_B because a real kernel lifetime corruption primitive is established, but no CLASS_A primitive such as controlled reclaim, arbitrary write, callback control, or demonstrated privilege escalation is shown.
ImportantCandidate is YES because this is a below-host-admin active-object UAF in networking code with nontrivial stale structured processing. Important-grade exploitation is not proven, but automatic downgrade would lose meaningful unresolved lifetime-corruption risk.
AutoDowngradeAllowed is NO because the issue is not merely a simple crash-only NULL dereference or passive cleanup fault. The UAF involves active connection state and unresolved post-lifetime structured processing.
Likely operational severity is Actionable Moderate at minimum, with Strong Important candidate review warranted.
5. One-sentence report phrase
A local SMC splice and close race can let pipe-buffer release call smc_rx_update_cons() after connection receive-buffer and link-group state has been freed, causing a real active-object UAF with at least kernel crash impact and unresolved exploitation leverage.
6. Manual review recommendation
MANUAL CHECK REQUIRED
Reason: real below-host-admin active-object UAF is established, the stale path consumes structured networking connection state, and stronger exploitation beyond DoS is unresolved even though controlled reclaim or LPE is not demonstrated.
7. Call-site confidence
Call-site confidence: high
======================================================================
UPSTREAM PATCH SUMMARY
======================================================================
Patch: net/smc: fix use-after-free in smc_rx_pipe_buf_release()
Commit: 6a644a7340df978785f3109d1e0726a982ce2c6f
Upstream URL: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=6a644a7340df978785f3109d1e0726a982ce2c6f
Commit description:
smc_rx_splice() hands RMB pages to a pipe and takes a socket reference
per entry so the smc_sock stays alive until the reader finishes. The
connection does not: a concurrent close runs smc_conn_free(), which
releases the receive buffer back to the link group pool.
smc_rx_pipe_buf_release() tests sk_state before taking the socket lock.
The state can change between the test and the lock, and
smc_rx_update_cons() then dereferences conn->rmb_desc and walks
conn->lgr, which smc_conn_free() has already released. On the
is_reg_err path smcr_buf_unuse() frees the descriptor outright, so
this is a use-after-free.
Take the socket lock first and test conn->freed instead.
smc_conn_free() sets that flag before releasing anything, and every
caller holds the socket lock. The two paths exclude each other: either
the pipe release runs first with everything valid, or it sees the flag
and skips the update.
Fixes: 9014db2 ("smc: add support for splice()")
Cc: [email protected]
Reviewed-by: Mahanta Jambigi <[email protected]>
Signed-off-by: Hidayath Khan <[email protected]>
Reviewed-by: Simon Horman <[email protected]>
Link: https://patch.msgid.link/[email protected]
Signed-off-by: Jakub Kicinski <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
Changed files:
net/smc/smc_rx.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=6a644a7340df978785f3109d1e0726a982ce2c6f
======================================================================
DETAILED REPORT METHODOLOGY
======================================================================
The original Linux kernel CVE announcement for CVE-2026-80982 can be found here:
https://lore.kernel.org/linux-cve-announce/?q=CVE-2026-80982
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:N/I:N/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: 6
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: MODERATE
KPANIC detected for this report: YES
Published priority for this report (same as in Subject): MODERATE 7.0
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-09-11 23:11 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-80982.170b152061914e71d298bb3c@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