CVE-2026-52995
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
24/06/2026
Last modified:
15/07/2026
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
net/rds: zero per-item info buffer before handing it to visitors<br />
<br />
rds_for_each_conn_info() and rds_walk_conn_path_info() both hand a<br />
caller-allocated on-stack u64 buffer to a per-connection visitor and<br />
then copy the full item_len bytes back to user space via<br />
rds_info_copy() regardless of how much of the buffer the visitor<br />
actually wrote.<br />
<br />
rds_ib_conn_info_visitor() and rds6_ib_conn_info_visitor() only<br />
write a subset of their output struct when the underlying<br />
rds_connection is not in state RDS_CONN_UP (src/dst addr, tos, sl<br />
and the two GIDs via explicit memsets). Several u32 fields<br />
(max_send_wr, max_recv_wr, max_send_sge, rdma_mr_max, rdma_mr_size,<br />
cache_allocs) and the 2-byte alignment hole between sl and<br />
cache_allocs remain as whatever stack contents preceded the visitor<br />
call and are then memcpy_to_user()&#39;d out to user space.<br />
<br />
struct rds_info_rdma_connection and struct rds6_info_rdma_connection<br />
are the only rds_info_* structs in include/uapi/linux/rds.h that are<br />
not marked __attribute__((packed)), so they have a real alignment<br />
hole. The other info visitors (rds_conn_info_visitor,<br />
rds6_conn_info_visitor, rds_tcp_tc_info, ...) write all fields of<br />
their packed output struct today and are not known to be vulnerable,<br />
but a future visitor that adds a conditional write-path would have<br />
the same bug.<br />
<br />
Reproduction on a kernel built without CONFIG_INIT_STACK_ALL_ZERO=y:<br />
a local unprivileged user opens AF_RDS, sets SO_RDS_TRANSPORT=IB,<br />
binds to a local address on an RDMA-capable netdev (rxe soft-RoCE on<br />
any netdev is sufficient), sendto()&#39;s any peer on the same subnet<br />
(fails cleanly but installs an rds_connection in the global hash in<br />
RDS_CONN_CONNECTING), then calls getsockopt(SOL_RDS,<br />
RDS_INFO_IB_CONNECTIONS). The returned 68-byte item contains 26<br />
bytes of stack garbage including kernel text/data pointers:<br />
<br />
0..7 0a 63 00 01 0a 63 00 02 src=10.99.0.1 dst=10.99.0.2<br />
8..39 00 ... gids (memset-zeroed)<br />
40..47 e0 92 a3 81 ff ff ff ff kernel pointer (max_send_wr)<br />
48..55 7f 37 b5 81 ff ff ff ff kernel pointer (rdma_mr_max)<br />
56..59 01 00 08 00 rdma_mr_size (garbage)<br />
60..61 00 00 tos, sl<br />
62..63 00 00 alignment padding<br />
64..67 18 00 00 00 cache_allocs (garbage)<br />
<br />
Fix by zeroing the per-item buffer in both rds_for_each_conn_info()<br />
and rds_walk_conn_path_info() before invoking the visitor. This<br />
covers the IPv4/IPv6 IB visitors and hardens all current and future<br />
visitors against the same class of bug.<br />
<br />
No functional change for visitors that fully populate their output.<br />
<br />
Changes in v2:<br />
- retarget at the net tree (subject prefix "[PATCH net v2]",<br />
net/rds: prefix in the title)<br />
- pick up Reviewed-by tags from Sharath Srinivasan and<br />
Allison Henderson
Impact
Base Score 3.x
5.50
Severity 3.x
MEDIUM
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 2.6.30 (including) | 5.10.258 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (including) | 5.15.209 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (including) | 6.1.175 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (including) | 6.6.141 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (including) | 6.12.91 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.13 (including) | 6.18.33 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.19 (including) | 7.0.10 (excluding) |
To consult the complete list of CPE names with products and versions, see this page
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/0797b2e6901827694aa9c34c4c72118c8c97fba1
- https://git.kernel.org/stable/c/5e67cc262afb384e835c3327e9d954eeaedc6a87
- https://git.kernel.org/stable/c/81651e9d7dea1c048d2952f57632a042931d7b43
- https://git.kernel.org/stable/c/912ba2e5704fdb8bc5decda96dfc1a57838f0099
- https://git.kernel.org/stable/c/91ce1bb6e4194dc2321748f68145359dcf86e350
- https://git.kernel.org/stable/c/b6ba93a7b71ed443c9843eb12d27ed86f1e52694
- https://git.kernel.org/stable/c/c7cb9eed8215a790f052f49cdccf577720d2bb62
- https://git.kernel.org/stable/c/c88eb7e8d8397a8c1db59c425332c5a30b2a1682



