KernelScan.io

HIGH Introduced in 2.6.12

infiniband BestPgsz Overflow

CVE-2026-97421

CVSS 7.8 / 10.0 NVD

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

KernelScan AI7.8HIGH

01

In the Linux kernel, the following vulnerability has been resolved: RDMA/umem: Be careful about boundary conditions in ib_umem_find_best_pgsz() Several corner cases, especially important on 32 bits: - umem->iova is u64, the function argument should pass in u64 or iova will be truncated - Check that the length is not too large for the iova - Check that lengths > 4G don't overflow the GENMASK

02

Engine v0.6.0

Risk summary

A local process with access to RDMA device files can trigger integer overflow and truncation bugs in the page-size selection logic during RDMA memory registration, primarily on 32-bit systems. An incorrect page size can cause the RDMA hardware to DMA to or from wrong memory locations, leading to kernel memory corruption, information disclosure, or crashes.

Affecteddrivers/infiniband/core/umem.c (RDMA/InfiniBand umem)

Vulnerability analysis

When a process registers memory for RDMA, the kernel computes the largest hardware page size that can cover the region. On 32-bit systems, the virtual address argument is truncated from 64-bit to 32-bit, the sum of the region length and address can silently overflow, and a bitmask generation macro can overflow for lengths exceeding 4 GB. Any of these conditions causes an incorrect page size to be selected, which can result in the RDMA hardware performing DMA transfers against the wrong physical memory — a memory-corruption primitive. The fix widens the address parameter to 64-bit, adds an explicit overflow check that returns failure when the address-plus-length sum exceeds the representable range, and guards the bitmask computation so it does not overflow. This is reachable locally by any process that can open RDMA user-verbs device files; it does not require root, only access to the RDMA subsystem, and is most dangerous on 32-bit kernels with RDMA-capable hardware.

03

BranchIntroducedFixed inPatch commit
5.152.6.125.15.222ae3cf7d2c4d5
5.45.4.735.53014da7587ce
5.85.8.175.9ddccf6cc3861
5.95.9.25.10e9bbb5f5349e
6.12.6.126.1.1895fc5b7310954
6.122.6.126.12.111—
6.182.6.126.18.53—
6.62.6.126.6.15809ea6837a043
mainline2.6.127.2—
cip/6.12.6.126.1.189-cip61ddccf6cc3861
cip/6.1-rt2.6.126.1.189-cip61-rt32ddccf6cc3861
cip/6.122.6.126.12.111-cip32ae3cf7d2c4d5

04

State of the newest release of each Civil Infrastructure Platform SLTS tree, from CIP's own fix records.

CIP treeState
cip/6.12Fixed in 6.12.111-cip32
cip/6.1Fixed in 6.1.189-cip61
cip/6.1-rtFixed in 6.1.189-cip61-rt32
cip/5.10Affected — no CIP fix yet (latest 5.10.271-cip78)
cip/5.10-rtAffected — no CIP fix yet (latest 5.10.268-cip77-rt34)
cip/4.19Affected — no CIP fix yet (latest 4.19.325-cip136)
cip/4.19-rtAffected — no CIP fix yet (latest 4.19.325-cip136-rt50)
cip/4.4Affected — no CIP fix yet (latest 4.4.302-cip115)
cip/4.4-rtAffected — no CIP fix yet (latest 4.4.302-cip115-rt63)