High · published May 27, 2026
In the Linux kernel, the following vulnerability has been resolved:
RDMA/uverbs: Validate wqe_size before using it in ib_uverbs_post_send
ib_uverbs_post_send() uses cmd.wqe_size from userspace without any
validation before passing it to kmalloc() and using the allocated
buffer as struct ib_uverbs_send_wr.
If a user provides a small wqe_size value (e.g., 1), kmalloc() will
succeed, but subsequent accesses to user_wr->opcode, user_wr->num_sge,
and other fields will read beyond the allocated buffer, resulting in
an out-of-bounds read from kernel heap memory. This could potentially
leak sensitive kernel information to userspace.
Additionally, providing an excessively large wqe_size can trigger a
WARNING in the memory allocation path, as reported by syzkaller.
This is inconsistent with ib_uverbs_unmarshall_recv() which properly
validates that wqe_size >= sizeof(struct ib_uverbs_recv_wr) before
proceeding.
Add the same validation for ib_uverbs_post_send() to ensure wqe_size
is at least sizeof(struct ib_uverbs_send_wr).
| Product | Versions | Fixed in |
|---|---|---|
| linux/linux_kernel | ≥ 5.0, < 5.10.252 | 5.10.252 |
| linux/linux_kernel | ≥ 5.11, < 5.15.202 | 5.15.202 |
| linux/linux_kernel | ≥ 5.16, < 6.1.165 | 6.1.165 |
| linux/linux_kernel | ≥ 6.2, < 6.6.128 | 6.6.128 |
| linux/linux_kernel | ≥ 6.7, < 6.12.75 | 6.12.75 |
| linux/linux_kernel | ≥ 6.13, < 6.18.14 | 6.18.14 |
| linux/linux_kernel | ≥ 6.19, < 6.19.4 | 6.19.4 |