HIGH Introduced in 6.14
smc RKey OOB
CVE-2026-80985
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H
KernelScan AI9.3CRITICAL
01Description
In the Linux kernel, the following vulnerability has been resolved: net/smc: carry oversized SMC-Rv2 LLC messages in the queue entry smc_llc_rmt_delete_rkey() and smc_llc_save_add_link_rkeys() read the part of a v2 message that does not fit into the 44-byte union smc_llc_msg, and both bound themselves by the size of the buffer it landed in, not by what arrived. On a link with a shared v2 receive buffer a 44-byte DELETE_RKEY_V2 declaring 255 rkeys reaches rkey[9..254] in whatever an earlier message left in lgr->wr_rx_buf_v2, and passes each of them to smc_rtoken_delete(). One of those 255 matched a registered rtoken and deleted it. An ADD_LINK on such a link installs up to 255 rtokens from the same bytes. Copy the tail into the queue entry, so its length is the length of the message that arrived, and declare the rkeys that fit inline as a member of the union instead of reaching them through a cast. The same DELETE_RKEY_V2 now processes the 9 rkeys it carries. The copy is limited to the longest tail the two functions can read, so the peer does not pick the size of the entry. The bound the previous patch placed on links without a shared v2 receive buffer is no longer needed.
02KernelScan AI Analysis
Risk summary
A remote SMC-R v2 peer can send a crafted LLC message that causes the receiving kernel to read stale data from a shared receive buffer, deleting or installing arbitrary RDMA memory tokens. This can break active connections and corrupt RDMA memory registration state. Any system with RDMA hardware and SMC-R v2 enabled that accepts SMC connections from the network is at risk.
Vulnerability analysis
When an SMC-R v2 control message arrives, the receiving code used to examine the entire shared receive buffer instead of only the bytes that were actually sent. A malicious peer can send a message claiming far more entries than it carries, causing the kernel to treat leftover data from earlier traffic as valid tokens to delete or install. This corrupts the RDMA memory registration state and can tear down active connections. The corrected code now saves only the actual trailing portion of each received message alongside the header and limits all parsing to the true received length, so stale buffer contents are ignored. A remote peer that has already established an SMC-R v2 connection can trigger this with a single crafted message, and the target system must have RDMA hardware and SMC-R v2 enabled.
Lifecycle
03Fix Versions
| Branch | Introduced | Fixed in | Patch commit |
|---|---|---|---|
| 6.18 | 6.14 | 6.18.50 | edf30d65e3ac |
| 7.2 | 6.14 | 7.2.4 | 0d6f80be8ac5 |
| mainline | 6.14 | 7.3 | 8d3c1ab82c11 |