CVE-2026-80986
Critical · 9.8CVSS
9.8
EPSS
0.6%
Published
Sep 11, 2026
CISA due date
—
Cloudanix analysis
A bug in a specialized Linux high-speed networking feature can crash servers that talk over certain high-performance network cards, so those systems should be updated.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Moderate
- Impact
- Full Compromise
- Component
- OS kernel
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The Linux kernel SMC-R v2 LLC path fails to bound peer rkey counts when parsing ADD_LINK messages. On RDMA devices with max_recv_sge == 1 there is no shared v2 receive buffer, so smc_llc_save_add_link_rkeys() treats a v2 extension that starts near the end of a 72-byte inline queue entry; reading num_rkeys (and following rkey data) is a slab-out-of-bounds access. This is a kernel memory-safety defect that can oops/panic the host and, depending on slab layout, corrupt adjacent objects.
Why it matters to the business
Linux systems that actually use Shared Memory Communications over RDMA (SMC-R/SMC-Rv2) can be crashed or destabilized during link setup, interrupting high-performance sockets used in RDMA/RoCE/InfiniBand and IBM Z-style environments. Hosts that never load SMC are not exposed. Severity is scored critical, but exploit maturity is none, EPSS is low and flat (~0.0065 over 30 days), the CVE is not in CISA KEV, and there is no ransomware association—treat as urgent for SMC/RDMA estates and routine kernel hygiene elsewhere. The issue was published about 20 days ago.
How an attack unfolds
A remote peer on a fabric where SMC-R v2 can be negotiated completes enough of an SMC connection for LLC ADD_LINK processing, then supplies an ADD_LINK v2 extension whose rkey count is unbounded or whose extension is interpreted past the inline 72-byte allocation. The receiver reads out of bounds in smc_llc_save_add_link_rkeys (commonly during smc_llc_cli_add_link / connect). Impact observed in the public report is a KASAN slab-out-of-bounds read and kernel BUG; follow-on memory corruption is theoretically possible but no public exploit, payload, or named threat-actor use is documented.
How to fix it
Install a vendor/distro kernel that includes the upstream net/smc fix bounding peer rkey counts in SMC-Rv2 LLC messages, then reboot into that kernel. Exact package versions were not supplied with this record—use your distributor’s advisory and changelog for net/smc or smc_llc_save_add_link_rkeys. If SMC is not required, blacklist the smc module and prevent AF_SMC usage as a compensating control, and restrict RDMA/SMC peering to trusted systems until patched.
How to confirm the fix worked
Confirm uname -r / package changelog lists the net/smc rkey-bounding fix. After reboot, smc should still load if needed, and adding an SMC-Rv2 link on a max_recv_sge==1 device must no longer produce KASAN slab-out-of-bounds in smc_llc_save_add_link_rkeys. If relying on disablement, verify the smc module is not loaded and no process holds AF_SMC sockets.
Typical attack path
- Find Linux hosts with SMC/SMC-R enabled and RDMA NICs that can negotiate SMC-Rv2.
- Obtain reachability on the RDMA or IP network used for SMC (typically a data-center fabric, not the open Internet).
- Cause the target to process an SMC-R connect / ADD_LINK LLC exchange (as a peer or via an application that uses AF_SMC).
- Trigger the un-bounded v2 rkey parse so the kernel reads past the inline LLC queue entry.
- Induce a kernel oops/panic or unstable slab state, denying service on the host.
How to detect it
Review kernel rings, journald, kdump/vmcore, and panic logs on SMC-enabled hosts for out-of-bounds reports during connect or link-add. Search for smc_llc_save_add_link_rkeys, smc_llc_cli_add_link, __smc_connect, and KASAN slab-out-of-bounds. Correlate with AF_SMC connect activity, smc module load, and RDMA device use. No public exploit tooling, file drops, or named APT TTPs are associated; absence of these logs does not prove non-exploitation if KASAN was off and the host simply oopsed.
- smc_llc_save_add_link_rkeys
- BUG: KASAN: slab-out-of-bounds in smc_llc_save_add_link_rkeys
- smc_llc_cli_add_link
- __smc_connect
- smc_llc_enqueue
- KASAN: slab-out-of-bounds
What your security team should do
- Inventory Linux hosts with RDMA NICs and CONFIG_SMC/smc loaded; patch and reboot those first.
- Apply vendor kernel updates containing the SMC-Rv2 LLC rkey bound; do not wait for KEV given CVSS 9.8 on SMC estates.
- Where SMC is unused, blacklist smc and limit RDMA peering as a short-term control.
- Hunt kernel logs and crash dumps since publication for smc_llc_save_add_link_rkeys / KASAN hits.
- Track distro advisories for exact fixed kernel packages; EPSS is low so prioritize by actual SMC exposure rather than internet-wide emergency response.
The record
In the Linux kernel, the following vulnerability has been resolved: net/smc: bound the peer rkey counts in SMC-Rv2 LLC messages On a link whose device has max_recv_sge == 1 there is no shared v2 receive buffer, and smc_llc_save_add_link_rkeys() takes the v2 extension from 44 bytes past the start of the queue entry's inline message: ext = (struct smc_llc_msg_add_link_v2_ext *)(llc_msg + SMC_WR_TX_SIZE); The entry is a 72-byte allocation and the extension starts at offset 68, so ext->num_rkeys at offset 94 is already past it. This happens on every SMC-Rv2 link addition, whatever the peer sends: [ 2.490065] BUG: KASAN: slab-out-of-bounds in smc_llc_save_add_link_rkeys+0x333/0x350 [ 2.490431] Read of size 2 at addr ffff8880056406de by task smctest/106 [ 2.490709] [ 2.490792] CPU: 0 UID: 0 PID: 106 Comm: smctest Not tainted 7.2.0-rc5-p1-g77a5d9d9c99f #32 PREEMPT(lazy) [ 2.490795] Hardware name: QEMU Ubuntu 24.04 PC v2 (i440FX + PIIX, arch_caps fix, 1996), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 [ 2.490798] Call Trace: [ 2.490803] <TASK> [ 2.490805] dump_stack_lvl+0x53/0x70 [ 2.490810] print_report+0xd0/0x630 [ 2.490828] ? __pfx__raw_spin_lock_irqsave+0x10/0x10 [ 2.490832] ? smc_llc_save_add_link_rkeys+0x333/0x350 [ 2.490834] kasan_report+0xce/0x100 [ 2.490836] ? smc_llc_save_add_link_rkeys+0x333/0x350 [ 2.490837] smc_llc_save_add_link_rkeys+0x333/0x350 [ 2.490839] ? smcr_buf_map_lgr+0x1bf/0x2b0 [ 2.490844] smc_llc_cli_add_link+0xca7/0x1e80 [ 2.490848] ? smc_llc_wait+0x355/0x810 [ 2.490850] ? __pfx_smc_llc_wait+0x10/0x10 [ 2.490851] ? __pfx_smc_llc_cli_add_link+0x10/0x10 [ 2.490853] ? __pfx_autoremove_wake_function+0x10/0x10 [ 2.490863] __smc_connect+0x3f5c/0x4980 [ 2.490873] ? __pfx_kernel_connect+0x10/0x10 [ 2.490888] ? __pfx___smc_connect+0x10/0x10 [ 2.490891] ? release_sock+0x148/0x1d0 [ 2.490894] smc_connect+0x42c/0x580 [ 2.490896] __sys_connect+0xfc/0x130 [ 2.490898] ? __pfx___sys_connect+0x10/0x10 [ 2.490900] ? handle_mm_fault+0x1a1/0x430 [ 2.490908] __x64_sys_connect+0x6d/0xb0 [ 2.490909] ? fpregs_assert_state_consistent+0x56/0xe0 [ 2.490917] do_syscall_64+0xf9/0x540 [ 2.490921] entry_SYSCALL_64_after_hwframe+0x77/0x7f [ 2.490924] RIP: 0033:0x421bb4 [ 2.490927] Code: ff f7 d8 64 89 01 48 83 c8 ff c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 80 3d ad 34 09 00 00 74 13 b8 2a 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 4c c3 0f 1f 00 55 48 89 e5 48 83 ec 10 89 55 [ 2.490929] RSP: 002b:00007ffd473b01a8 EFLAGS: 00000202 ORIG_RAX: 000000000000002a [ 2.490935] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 0000000000421bb4 [ 2.490936] RDX: 0000000000000010 RSI: 00007ffd473b01d0 RDI: 0000000000000003 [ 2.490937] RBP: 0000000000003930 R08: 0000000000000004 R09: 0000000000000000 [ 2.490938] R10: 00007ffd473b0f98 R11: 0000000000000202 R12: 0000000000000006 [ 2.490939] R13: 00007ffd473b0f87 R14: 0000000000000003 R15: 00007ffd473b0f90 [ 2.490940] </TASK> [ 2.490941] [ 2.499545] Allocated by task 44: [ 2.499693] kasan_save_stack+0x33/0x60 [ 2.499860] kasan_save_track+0x14/0x30 [ 2.500026] __kasan_kmalloc+0x8f/0xa0 [ 2.500190] __kmalloc_cache_noprof+0x158/0x370 [ 2.500393] smc_llc_enqueue+0x72/0x560 [ 2.500559] smc_wr_rx_tasklet_fn+0x474/0xa80 [ 2.500747] tasklet_action_common+0x20f/0x8a0 [ 2.500945] handle_softirqs+0x18e/0x590 [ 2.501115] do_softirq+0x3b/0x60 [ 2.501266] __local_bh_enable_ip+0x61/0x70 [ 2.501446] __alloc_skb+0x732/0x890 [ 2.501604] rxe_init_packet+0x16b/0x4f0 [ 2.501783] prepare_ack_packet+0xb8/0x830 [ 2.501962] rxe_receiver+0x495/0x96e0 [ 2.502125] do_work+0x144/0x470 [ 2.502269] process_one_work+0x633/0x1030 [ 2.502450] worker_thread+0x45b/0xd10 [ 2.50261 ---truncated---
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|