In the Linux kernel, the following vulnerability has been resolved:
RDMA/rxe: Fix iova-to-va conversion for MR page sizes != PAGE_SIZE
The current implementation incorrectly handles memory regions (MRs) with page sizes different from the system PAGE_SIZE. The core issue is that rxe_set_page() is called with mr->page_size step increments, but the page_list stores individual struct page pointers, each representing PAGE_SIZE of memory.
ib_sg_to_page() has ensured that when i>=1 either a) SG[i-1].dma_end and SG[i].dma_addr are contiguous or b) SG[i-1].dma_end and SG[i].dma_addr are mr->page_size aligned.
This leads to incorrect iova-to-va conversion in scenarios:
1) page_size < PAGE_SIZE (e.g., MR: 4K, system: 64K): ibmr->iova = 0x181800 sg[0]: dma_addr=0x181800, len=0x800 sg[1]: dma_addr=0x173000, len=0x1000
Access iova = 0x181800 + 0x810 = 0x182010 Expected VA: 0x173010 (second SG, offset 0x10) Before fix: - index = (0x182010 >> 12) - (0x181800 >> 12) = 1 - page_offset = 0x182010 & 0xFFF = 0x10 - xarray[1] stores system page base 0x170000 - Resulting VA: 0x170000 + 0x10 = 0x170010 (wrong)
2) page_size > PAGE_SIZE (e.g., MR: 64K, system: 4K): ibmr->iova = 0x18f800 sg[0]: dma_addr=0x18f800, len=0x800 sg[1]: dma_addr=0x170000, len=0x1000
Access iova = 0x18f800 + 0x810 = 0x190010 Expected VA: 0x170010 (second SG, offset 0x10) Before fix: - index = (0x190010 >> 16) - (0x18f800 >> 16) = 1 - page_offset = 0x190010 & 0xFFFF = 0x10 - xarray[1] stores system page for dma_addr 0x170000 - Resulting VA: system page of 0x170000 + 0x10 = 0x170010 (wrong)
Yi Zhang reported a kernel panic[1] years ago related to this defect.
Solution: 1. Replace xarray with pre-allocated rxe_mr_page array for sequential indexing (all MR page indices are contiguous) 2. Each rxe_mr_page stores both struct page* and offset within the system page 3. Handle MR page_size != PAGE_SIZE relationships: - page_size > PAGE_SIZE: Split MR pages into multiple system pages - page_size <= PAGE_SIZE: Store offset within system page 4. Add boundary checks and compatibility validation
This ensures correct iova-to-va conversion regardless of MR page size and system PAGE_SIZE relationship, while improving performance through array-based sequential access.
Tests on 4K and 64K PAGE_SIZE hosts: - rdma-core/pytests $ ./build/bin/run_tests.py --dev eth0_rxe - blktest: $ TIMEOUT=30 QUICK_RUN=1 USE_RXE=1 NVMET_TRTYPES=rdma ./check nvme srp rnbd
[1] https://lore.kernel.org/all/CAHj4cs9XRqE25jyVw9rj9YugffLn5+f=1znaBEnu1usLOciD+g@mail.gmail.com/T/
CVSS Details
- CVSS 3.1 Base Score: 9.8
- CVSS 3.1 Vector: (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Redhat_linux | — | Upgrade kernelNo solution existsUpgrade kernel-rt | Jul 17, 2026 | Jun 9, 2026 |
| Ubuntu | — | Upgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-6.8.0-1059-oracle-64kUpgrade linux-image-nvidia-6.8Upgrade linux-image-oracle-6.8Upgrade linux-image-6.8.0-137-lowlatency-64kUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-6.8.0-1060-gkeUpgrade linux-image-aws-fips-6.8Upgrade linux-image-nvidia-64k-6.17Upgrade linux-image-6.8.0-1031-nvidia-tegra-rtUpgrade linux-image-6.8.0-1062-ibmUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-oem-22.04bUpgrade linux-image-6.17.0-1021-azureUpgrade linux-image-oracle-64k-6.17Upgrade linux-image-6.17.0-1017-realtimeUpgrade linux-image-6.17.0-1020-gcpUpgrade linux-image-realtime-6.8.1Upgrade linux-image-6.8.0-1060-nvidia-64kUpgrade linux-image-aws-6.8Upgrade linux-image-6.8.0-1060-nvidiaUpgrade linux-image-raspi-realtime-6.8Upgrade linux-image-6.8.0-1062-aws-64kUpgrade linux-image-6.17.0-1019-aws-64kUpgrade linux-image-6.17.0-40-generic-64kUpgrade linux-image-realtime-hwe-24.04Upgrade linux-image-6.8.0-137-lowlatencyUpgrade linux-image-nvidia-6.17Upgrade linux-image-oracle-64k-6.8Upgrade linux-image-6.8.1-1057-realtimeUpgrade linux-image-6.8.0-138-genericUpgrade linux-image-azure-fdeUpgrade linux-image-generic-6.8Upgrade linux-image-aws-64k-6.17Upgrade linux-image-generic-64k-6.17Upgrade linux-image-6.8.0-1060-nvidia-lowlatencyUpgrade linux-image-aws-lts-24.04Upgrade linux-image-generic-64k-6.8Upgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-gcp-6.17Upgrade linux-image-ibm-classicUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-kvmUpgrade linux-image-virtual-6.8Upgrade linux-image-6.17.0-1021-raspiUpgrade linux-image-gcp-lts-24.04Upgrade linux-image-awsUpgrade linux-image-azure-fipsUpgrade linux-image-6.8.0-1047-gkeopUpgrade linux-image-gcp-64kUpgrade linux-image-ibm-6.8Upgrade linux-image-6.8.0-138-generic-64kUpgrade linux-image-aws-64k-6.8Upgrade linux-image-lowlatencyUpgrade linux-image-gcp-fipsUpgrade linux-image-6.17.0-1026-nvidia-64kUpgrade linux-image-6.8.0-1062-awsUpgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-aws-64k-lts-24.04Upgrade linux-image-gkeop-6.8Upgrade linux-image-lowlatency-6.8Upgrade linux-image-oem-24.04cUpgrade linux-image-aws-fipsUpgrade linux-image-azure-lts-24.04Upgrade linux-image-gcp-64k-6.17Upgrade linux-image-azureUpgrade linux-image-gke-64kUpgrade linux-image-raspi-6.8Upgrade linux-image-xilinx-6.8Upgrade linux-image-gke-64k-6.8Upgrade linux-image-azure-fde-lts-24.04Upgrade linux-image-6.17.0-1019-awsUpgrade linux-image-6.8.0-137-generic-64kUpgrade linux-image-raspiUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-oem-6.17Upgrade linux-image-6.8.0-1060-gke-64kUpgrade linux-image-6.8.0-137-fipsUpgrade linux-image-6.8.0-1060-nvidia-lowlatency-64kUpgrade linux-image-6.8.0-1059-oracleUpgrade linux-image-azure-6.17Upgrade linux-image-gcp-64k-6.8Upgrade linux-image-fipsUpgrade linux-image-xilinxUpgrade linux-image-ibmUpgrade linux-image-oem-22.04aUpgrade linux-image-generic-6.17Upgrade linux-image-virtual-hwe-24.04Upgrade linux-image-gke-6.8Upgrade linux-image-generic-lpaeUpgrade linux-image-6.8.0-1065-gcp-fipsUpgrade linux-image-oem-24.04bUpgrade linux-image-oem-22.04cUpgrade linux-image-lowlatency-64k-6.8Upgrade linux-image-generic-hwe-24.04Upgrade linux-image-gkeopUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-oracleUpgrade linux-image-fips-6.8Upgrade linux-image-6.8.0-1065-gcpUpgrade linux-image-6.8.0-1062-raspiUpgrade linux-image-6.17.0-1020-gcp-64kUpgrade linux-image-virtual-6.17Upgrade linux-image-realtime-6.17Upgrade linux-image-oracle-64kUpgrade linux-image-oem-22.04dUpgrade linux-image-gkeUpgrade linux-image-genericUpgrade linux-image-6.8.0-1064-azure-fipsUpgrade linux-image-raspi-6.17Upgrade linux-image-6.8.0-1063-azure-fdeUpgrade linux-image-6.8.0-1062-aws-fipsUpgrade linux-image-6.17.0-1028-oemUpgrade linux-image-oem-24.04aUpgrade linux-image-oem-24.04Upgrade linux-image-nvidia-tegraUpgrade linux-image-gcp-fips-6.8Upgrade linux-image-nvidia-lowlatency-6.8Upgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-gcpUpgrade linux-image-intel-iotgUpgrade linux-image-intel-iot-realtimeUpgrade linux-image-generic-64kUpgrade linux-image-realtime-hwe-22.04Upgrade linux-image-6.8.0-1065-gcp-64kUpgrade linux-image-nvidia-tegra-rt-6.8Upgrade linux-image-nvidia-tegra-6.8Upgrade linux-image-nvidia-hwe-24.04Upgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-lowlatency-64kUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-gcp-6.8Upgrade linux-image-azure-fde-6.8Upgrade linux-image-6.8.0-137-genericUpgrade linux-image-6.17.0-1018-oracle-64kUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-oem-24.04dUpgrade linux-image-nvidia-64kUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-6.8.0-1031-nvidia-tegraUpgrade linux-image-6.8.0-1064-azureUpgrade linux-image-realtimeUpgrade linux-image-raspi-realtimeUpgrade linux-image-oracle-lts-24.04Upgrade linux-image-nvidia-64k-hwe-24.04Upgrade linux-image-azure-fde-6.17Upgrade linux-image-aws-6.17Upgrade linux-image-6.8.0-1034-xilinxUpgrade linux-image-6.17.0-1026-nvidiaUpgrade linux-image-6.17.0-1018-azure-fdeUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-oem-22.04Upgrade linux-image-nvidiaUpgrade linux-image-azure-6.8Upgrade linux-image-aws-64kUpgrade linux-image-6.17.0-40-genericUpgrade linux-image-virtualUpgrade linux-image-nvidia-lowlatency-64k-6.8Upgrade linux-image-azure-fips-6.8Upgrade linux-image-6.8.0-2051-raspi-realtimeUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-nvidia-tegra-rtUpgrade linux-image-oracle-6.17Upgrade linux-image-6.17.0-1018-oracle | Jul 1, 2026 | Jun 9, 2026 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Sep 28, 2026 | Jun 9, 2026 |
Prioritise with Active Threat Intelligence
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub