Description
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 status
c3bea3d2dc5358e05541527283279102383b0231 (git) before 9c15ec4cd4e7f57c6bbcb4e73e99290f150dd2a7
c3bea3d2dc5358e05541527283279102383b0231 (git) before 9b5ac1c15334d46c0dbd49d64a2257b929500163
c3bea3d2dc5358e05541527283279102383b0231 (git) before 01c9b152647dc70dc06a4a2eff86ebb3b3c76075
c3bea3d2dc5358e05541527283279102383b0231 (git) before bf1feed1a7886af945f92890493aefd2b5c9928a
c3bea3d2dc5358e05541527283279102383b0231 (git) before d533425ac1f2925b4fc3e4ed9b9d72362cb23475
c3bea3d2dc5358e05541527283279102383b0231 (git) before bf4454da8b1e712714628c0a0d6e7845bb40790a
c3bea3d2dc5358e05541527283279102383b0231 (git) before bef70ff9841990658610512b4a18e4a88c9b4df6
c3bea3d2dc5358e05541527283279102383b0231 (git) before 1956f0a74ccf5dc9c3ef717f2985c3ed3400aab0
5.0
Any version before 5.0
5.10.252 (semver)
5.15.202 (semver)
6.1.165 (semver)
6.6.128 (semver)
6.12.75 (semver)
6.18.14 (semver)
6.19.4 (semver)
7.0 (original_commit_for_fix)
References
git.kernel.org/...c/9c15ec4cd4e7f57c6bbcb4e73e99290f150dd2a7
git.kernel.org/...c/9b5ac1c15334d46c0dbd49d64a2257b929500163
git.kernel.org/...c/01c9b152647dc70dc06a4a2eff86ebb3b3c76075
git.kernel.org/...c/bf1feed1a7886af945f92890493aefd2b5c9928a
git.kernel.org/...c/d533425ac1f2925b4fc3e4ed9b9d72362cb23475
git.kernel.org/...c/bf4454da8b1e712714628c0a0d6e7845bb40790a
git.kernel.org/...c/bef70ff9841990658610512b4a18e4a88c9b4df6
git.kernel.org/...c/1956f0a74ccf5dc9c3ef717f2985c3ed3400aab0