From: AL-KERNEL <[email protected]>
To: [email protected]
Subject: [CVE-2023-53382][MODERATE 7.0] net/smc: Reset connection when trying to use SMCRv2 fails.
Date: Wed, 09 Sep 2026 02:28:33 -0400 [thread overview]
Message-ID: <[email protected]> (raw)
CVE: CVE-2023-53382
Priority: MODERATE 7.0
AL-KERNEL base severity: MODERATE
KPANIC flag: YES
Patch: net/smc: Reset connection when trying to use SMCRv2 fails.
Commit: 9540765d1882d15497d880096de99fafabcfa08c
Upstream patch: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=9540765d1882d15497d880096de99fafabcfa08c
Original CVE announcement: https://lore.kernel.org/linux-cve-announce/?q=CVE-2023-53382
Analysis date: Wed, 09 Sep 2026 02:28:33 -0400
ActionableScore: 4
ActionableScore lower bound: 3
Actionable bucket: Borderline / manual review recommended
Manual review required: YES
Summary:
No one-sentence report phrase was found.
======================================================================
ABOUT THIS REPORT
======================================================================
The original Linux kernel CVE announcement for CVE-2023-53382 is available here:
https://lore.kernel.org/linux-cve-announce/?q=CVE-2023-53382
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-2023-53382 MODERATE https://www.kernelcve.org/list/?q=CVE-2023-53382 CHECK WITH IMPACT FROM ORIG NN MODERATE Maybe valid. Check manually. Hints by AL-KERNEL: The best (paranoid) CVSS is 'AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H';**CWE-476;CWE-665;CWE-703;Other CVSS 'AV:A/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H';BEST CVSS score: '5.9';DESCR 'An SMC server can crash during the CLC handshake when an SMCRv2 attempt fails during buffer creation or RMB registration and the connection then falls back to SMCRv1 without fully resetting connection state. The stale conn lnk pointer can still reference the earlier SMCRv2 link while conn lgr points to the SMCRv1 link group, so smc_clc_send_confirm_accept can index conn rmb_desc mr with the wrong link_idx and dereference an uninitialized MR pointer. A remote peer can potentially trigger this by creating many SMC connection attempts against an SMC enabled service on affected RDMA hardware, but reliable triggering also depends on SMCRv2 being tried first, fallback to SMCRv1, and a buffer or registration failure during the handshake. For the CVSS the PR:N is used because the peer does not need local credentials on the target if the SMC service is reachable. The issue is network reachable in SMC/RDMA deployments, usually inside data center or trusted internal networks rather than the public Internet. Impact is denial of service via kernel crash. The evidence points to NULL pointer dereference rather than a proven information disclosure or privilege escalation primitive.';YES REQUIRES MANUAL CHECK; ,and ActionableScore result is Borderline / manual review recommended (with actual score 4) MAYBE DANGER NULLPTR INIT HARDWARE DEBUGFS LINUS CVEOUTDATED KPANIC - - checked
======================================================================
ACTIONABLESCORE ANALYSIS
======================================================================
ActionableScore=4
ActionableScoreLower=3
PrimitiveClass=CLASS_C
RealUAF=NO
HostAdminRequired=NO
NamespaceScopedPrivilege=NO
ImportantCandidate=NO
ManualReview=RECOMMENDED
AutoDowngradeAllowed=YES
1. ActionableScore
* Raw conservative score: 3
* Conservative score: 3. No floor or cap applied.
* Raw paranoid score: 4
* Paranoid score: 4. No floor or cap applied.
* Final recommended bucket: **Borderline / manual review recommended**::
2. Signal breakdown
Conservative signals:
* +2 Remote reachable / directly network-triggerable. A remote peer can create SMC connection attempts against an SMC-enabled server and reach the CLC handshake path.
* +1 Reliable kernel crash / strong DoS. The supplied trace shows a kernel NULL pointer dereference in smc_clc_send_confirm_accept from smc_listen_work.
* +1 Weak / indirect corruption candidate. The bug leaves conn->lnk pointing to an inconsistent SMCRv2 link while conn->lgr points to an SMCRv1 link group, causing wrong link_idx based selection of conn->rmb_desc->mr.
* -1 No attacker-controlled payload or useful target selection. The demonstrated primitive is an invalid structured state leading to NULL dereference, not attacker-directed overwrite, controlled reclaim, or useful object replacement.
Paranoid signals:
* +2 Remote reachable / directly network-triggerable.
* +1 Reliable kernel crash / strong DoS.
* +1 Weak / indirect corruption candidate.
* No negative signal applied in paranoid scoring, because the network crash path is plausible when SMC/RDMA is deployed and reachable.
Important non-awarded signals:
* RealUAF not awarded. The patch shows stale or inconsistent connection state, but not a post-free object use.
* Controlled reclaim not demonstrated.
* Arbitrary write not demonstrated.
* Confidentiality and integrity not awarded. The evidence supports NULL pointer dereference and crash only.
* Strong LPE / strong exploitation leverage not awarded.
* Structured stale-object leverage not awarded, because the stale state is consumed as an inconsistent link/index and the shown consequence is immediate NULL dereference.
* Extra Availability not awarded, because the same kernel crash is already counted.
* Race penalty not applied. This is an ordered fallback/error-state bug, not a proven narrow timing race.
Repeated release/refcount checklist:
* First release can end lifetime: not established.
* Exact same reference survives first release: not applicable.
* Second operation is a real lifetime/refcount mutation: not established.
* +1 Concrete repeated release/refcount: not awarded.
* Paranoid repeated-refcount leverage +1: not awarded.
* FLOOR 5: not applied.
3. Reachability analysis
The evaluated attacker is a remote peer that can connect to an SMC-enabled service. The supplied reproduction uses smc_run nginx on the server and smc_run wrk as the client, so the vulnerable operation is reached through connection establishment and CLC handshake processing, not through a local ioctl or privileged host control-plane operation.
Host administrator privileges are not required for the peer once the SMC service is reachable, so HostAdminRequired=NO. However, practical exposure depends on prior deployment choices: SMC/RDMA must be enabled, suitable RDMA devices must exist, and the server must expose an SMC-capable service. The report specifically mentions two Mellanox ConnectX-4 devices and an SMCRv2 to SMCRv1 fallback path. These are real deployment constraints, but they do not make the triggering peer a host administrator.
Namespace-scoped privilege is not relevant here, so NamespaceScopedPrivilege=NO. No capability namespace decision is needed for the remote peer model. There is no evidence that packet traffic alone against arbitrary TCP services triggers this without SMC being in use.
The trigger is not a race. It depends on a specific handshake/fallback sequence where SMCRv2 is tried first, buffer creation or RMB registration fails, and SMCRv1 is then attempted without fully resetting connection state. Repeated connection attempts may make the condition more reachable under the affected environment, but the buffer or registration failure is still a material condition.
4. Primitive and severity interpretation
The exact primitive is inconsistent active connection state: conn->lgr is reassigned to the SMCRv1 link group, while conn->lnk can still point to the earlier SMCRv2 link. Later, smc_clc_send_confirm_accept uses conn->lnk->link_idx to access conn->rmb_desc->mr[link_idx]. Because the MR for that index may not be initialized in the SMCRv1 attempt, this causes a NULL pointer dereference.
This is active structured state misuse, but not a real UAF based on the supplied patch. The stale conn->lnk is stale semantically, not proven stale after object lifetime end. There is no concrete double release, no refcount mutation through a dangling object, no controlled replacement, no arbitrary read/write, and no demonstrated information disclosure or privilege escalation.
PrimitiveClass=CLASS_C because the demonstrated behavior is primarily invalid-state crash/DoS. ImportantCandidate=NO because the evidence does not establish meaningful exploitation leverage beyond the crash. AutoDowngradeAllowed=YES because this is a crash-only Class C issue with no unresolved kernel corruption, ownership, authorization, or repeated lifetime/refcount primitive. ManualReview=RECOMMENDED because the issue is network reachable in SMC/RDMA deployments and affects kernel availability.
Likely operational severity is Borderline / Actionable Moderate depending on exposure. It is more important than a purely local configuration bug when SMC/RDMA services are reachable, but it is not an Important-class corruption candidate from the supplied evidence.
5. One-sentence report phrase
An SMC server can hit a kernel NULL pointer dereference during CLC handshake fallback when failed SMCRv2 setup leaves stale connection link state that is later used during SMCRv1 accept processing, allowing a reachable peer to cause DoS in affected SMC/RDMA deployments.
6. Manual review recommendation
MANUAL CHECK RECOMMENDED
Reason: the bug is remotely reachable in configured SMC/RDMA deployments and causes a kernel crash, but the supplied evidence supports NULL dereference only and does not establish UAF, controlled corruption, information disclosure, or privilege escalation.
7. Call-site confidence
Call-site confidence: high
======================================================================
UPSTREAM PATCH SUMMARY
======================================================================
Patch: net/smc: Reset connection when trying to use SMCRv2 fails.
Commit: 9540765d1882d15497d880096de99fafabcfa08c
Upstream URL: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=9540765d1882d15497d880096de99fafabcfa08c
Commit description:
We found a crash when using SMCRv2 with 2 Mellanox ConnectX-4. It
can be reproduced by:
- smc_run nginx
- smc_run wrk -t 32 -c 500 -d 30 http://<ip>:<port>
BUG: kernel NULL pointer dereference, address: 0000000000000014
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page
PGD 8000000108713067 P4D 8000000108713067 PUD 151127067 PMD 0
Oops: 0000 [#1] PREEMPT SMP PTI
CPU: 4 PID: 2441 Comm: kworker/4:249 Kdump: loaded Tainted: G W E 6.4.0-rc1+ #42
Workqueue: smc_hs_wq smc_listen_work [smc]
RIP: 0010:smc_clc_send_confirm_accept+0x284/0x580 [smc]
RSP: 0018:ffffb8294b2d7c78 EFLAGS: 00010a06
RAX: ffff8f1873238880 RBX: ffffb8294b2d7dc8 RCX: 0000000000000000
RDX: 00000000000000b4 RSI: 0000000000000001 RDI: 0000000000b40c00
RBP: ffffb8294b2d7db8 R08: ffff8f1815c5860c R09: 0000000000000000
R10: 0000000000000400 R11: 0000000000000000 R12: ffff8f1846f56180
R13: ffff8f1815c5860c R14: 0000000000000001 R15: 0000000000000001
FS: 0000000000000000(0000) GS:ffff8f1aefd00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000000000014 CR3: 00000001027a0001 CR4: 00000000003706e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
<TASK>
? mlx5_ib_map_mr_sg+0xa1/0xd0 [mlx5_ib]
? smcr_buf_map_link+0x24b/0x290 [smc]
? __smc_buf_create+0x4ee/0x9b0 [smc]
smc_clc_send_accept+0x4c/0xb0 [smc]
smc_listen_work+0x346/0x650 [smc]
? __schedule+0x279/0x820
process_one_work+0x1e5/0x3f0
worker_thread+0x4d/0x2f0
? __pfx_worker_thread+0x10/0x10
kthread+0xe5/0x120
? __pfx_kthread+0x10/0x10
ret_from_fork+0x2c/0x50
</TASK>
During the CLC handshake, server sequentially tries available SMCRv2
and SMCRv1 devices in smc_listen_work().
If an SMCRv2 device is found. SMCv2 based link group and link will be
assigned to the connection. Then assumed that some buffer assignment
errors happen later in the CLC handshake, such as RMB registration
failure, server will give up SMCRv2 and try SMCRv1 device instead. But
the resources assigned to the connection won't be reset.
When server tries SMCRv1 device, the connection creation process will
be executed again. Since conn->lnk has been assigned when trying SMCRv2,
it will not be set to the correct SMCRv1 link in
smcr_lgr_conn_assign_link(). So in such situation, conn->lgr points to
correct SMCRv1 link group but conn->lnk points to the SMCRv2 link
mistakenly.
Then in smc_clc_send_confirm_accept(), conn->rmb_desc->mr[link->link_idx]
will be accessed. Since the link->link_idx is not correct, the related
MR may not have been initialized, so crash happens.
| Try SMCRv2 device first
| |-> conn->lgr: assign existed SMCRv2 link group;
| |-> conn->link: assign existed SMCRv2 link (link_idx may be 1 in SMC_LGR_SYMMETRIC);
| |-> sndbuf & RMB creation fails, quit;
|
| Try SMCRv1 device then
| |-> conn->lgr: create SMCRv1 link group and assign;
| |-> conn->link: keep SMCRv2 link mistakenly;
| |-> sndbuf & RMB creation succeed, only RMB->mr[link_idx = 0]
| initialized.
|
| Then smc_clc_send_confirm_accept() accesses
| conn->rmb_desc->mr[conn->link->link_idx, which is 1], then crash.
v
This patch tries to fix this by cleaning conn->lnk before assigning
link. In addition, it is better to reset the connection and clean the
resources assigned if trying SMCRv2 failed in buffer creation or
registration.
[Commit description truncated; see the upstream URL below]
Changed files:
net/smc/af_smc.c
net/smc/smc_core.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=9540765d1882d15497d880096de99fafabcfa08c
======================================================================
DETAILED REPORT METHODOLOGY
======================================================================
The original Linux kernel CVE announcement for CVE-2023-53382 can be found here:
https://lore.kernel.org/linux-cve-announce/?q=CVE-2023-53382
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:A/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
The Best / paranoid CVSS vector: AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
The Best / paranoid CVSS score: 5.9
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: 3
Paranoid ActionableScore: 4
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-09 6:28 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-2023-53382.2fc6513273d09ac9f9b6854d@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