Skip to content
CVE PROGRAM SOURCE RECORD9.8 Critical

CVE-2026-98365

RDMA/rxe: Fix integer overflow in mr_check_range() leading to OOB access

Description

In the Linux kernel, the following vulnerability has been resolved: RDMA/rxe: Fix integer overflow in mr_check_range() leading to OOB access mr_check_range() validates that [iova, iova+length) falls within the registered MR range using wraparound-prone arithmetic: if (iova < mr->ibmr.iova || iova + length > mr->ibmr.iova + mr->ibmr.length) A remote peer can craft an RDMA-Write/Read RETH so that iova + length wraps to 0 (e.g. iova=0xfffffffffffffff8, length=8), bypassing the check. rxe_mr_iova_to_index() then computes a huge index (int idx, only guarded by WARN_ON) and rxe_mr_copy_xarray() dereferences mr->page_info[huge], causing an out-of-bounds read/write and a kernel oops that is triggerable by an unauthenticated remote peer. Rewrite the check in overflow-safe form; the first two clauses guarantee that the subsequent subtractions do not underflow: if (iova < mr->ibmr.iova || length > mr->ibmr.length || iova - mr->ibmr.iova > mr->ibmr.length - length) With the fix, mr_check_range() returns -EINVAL for the crafted iova and the responder reports REMOTE_ACCESS_ERROR instead of triggering the OOB.

Affected products

Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.

Linux Linux

Default version status: unaffected

  • 8700e3e7c4857d28ebaa824509934556da0b3e76 to < b7d2118660545a00b21e83010ded1a231c6fb8c5affected
  • 8700e3e7c4857d28ebaa824509934556da0b3e76 to < 5d9426a74fc8cb8f375fcdc19b465a030f9b8cabaffected
  • 8700e3e7c4857d28ebaa824509934556da0b3e76 to < 2f3b705144e3a3c14184fec6e354680081fe91ecaffected
  • 8700e3e7c4857d28ebaa824509934556da0b3e76 to < 3431f525718f6b07da308cda6d44f8cb548bbd37affected
  • 8700e3e7c4857d28ebaa824509934556da0b3e76 to < d10e2a08799e858d3e71ea4169bcd018f216d444affected

Linux Linux

Default version status: affected

  • 4.8affected
  • 0 to < 4.8unaffected
  • 6.6.158 to ≤ 6.6.*unaffected
  • 6.12.112 to ≤ 6.12.*unaffected
  • 6.18.54 to ≤ 6.18.*unaffected
  • 7.2.8 to ≤ 7.2.*unaffected
  • 7.3 to ≤ *unaffected

References