From mboxrd@z Thu Jan 1 00:00:00 1970 From: AL-KERNEL To: kernel-cve@kernelcve.org 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 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-AL-KERNEL-CVE: CVE-2023-53382 X-AL-KERNEL-Priority: MODERATE 7.0 X-AL-KERNEL-Severity: MODERATE 7.0 X-AL-KERNEL-Base-Severity: MODERATE X-AL-KERNEL-KPANIC: YES X-AL-KERNEL-ActionableScore: 4 X-AL-KERNEL-ActionableScore-Lower: 3 X-AL-KERNEL-Commit: 9540765d1882d15497d880096de99fafabcfa08c List-Id: 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://: 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: ? 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 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 alexanjelausa@gmail.com (and both send reply to CVE record itself too and see "reply" button below for howto reply).