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/
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Alma_linux | — | Upgrade libperfUpgrade kernel-rt-64k-debug-modules-coreUpgrade kernel-rt-coreUpgrade kernel-64k-coreUpgrade kernel-modulesUpgrade kernel-debug-uki-virtUpgrade kernel-rt-debug-develUpgrade kernel-rt-64k-debugUpgrade kernel-debug-coreUpgrade kernel-debug-modules-coreUpgrade rtlaUpgrade kernel-64k-debug-modules-extraUpgrade kernelUpgrade python3-perfUpgrade kernel-64k-debug-coreUpgrade kernel-abi-stablelistsUpgrade kernel-modules-coreUpgrade kernel-rt-64k-modules-extraUpgrade kernel-debug-develUpgrade kernel-debug-modulesUpgrade kernel-coreUpgrade kernel-64kUpgrade kernel-64k-modulesUpgrade kernel-rt-64k-debug-modules-extraUpgrade kernel-zfcpdump-develUpgrade kernel-rt-debug-modulesUpgrade kernel-zfcpdump-modules-extraUpgrade kernel-headersUpgrade kernel-64k-develUpgrade kernel-cross-headersUpgrade kernel-debug-devel-matchedUpgrade kernel-rt-64k-debug-modulesUpgrade kernel-modules-extraUpgrade kernel-debugUpgrade kernel-64k-modules-coreUpgrade kernel-devel-matchedUpgrade kernel-rt-modules-coreUpgrade kernel-rt-debug-modules-extraUpgrade kernel-rt-64k-modules-coreUpgrade kernel-rt-64k-coreUpgrade kernel-zfcpdump-modulesUpgrade kernel-rt-modulesUpgrade kernel-tools-libs-develUpgrade rvUpgrade kernel-zfcpdumpUpgrade kernel-tools-libsUpgrade kernel-zfcpdump-coreUpgrade kernel-64k-modules-extraUpgrade perfUpgrade kernel-64k-devel-matchedUpgrade kernel-develUpgrade kernel-64k-debugUpgrade kernel-64k-debug-devel-matchedUpgrade kernel-64k-debug-develUpgrade kernel-rt-64k-develUpgrade kernel-rt-debugUpgrade kernel-rt-64kUpgrade kernel-64k-debug-modulesUpgrade kernel-rt-debug-coreUpgrade kernel-debug-modules-extraUpgrade kernel-zfcpdump-devel-matchedUpgrade kernel-uki-virtUpgrade kernel-toolsUpgrade kernel-rt-64k-modulesUpgrade kernel-uki-virt-addonsUpgrade kernel-64k-debug-modules-coreUpgrade kernel-rt-develUpgrade kernel-zfcpdump-modules-coreUpgrade kernel-rt-modules-extraUpgrade kernel-rt-debug-modules-coreUpgrade kernel-rtUpgrade kernel-rt-64k-debug-develUpgrade kernel-rt-64k-debug-coreUpgrade kernel-doc | Oct 11, 2026 | Sep 28, 2026 |
| Redhat_linux | — | Upgrade kernelUpgrade kernel-rtNo solution exists | Jul 17, 2026 | Jun 9, 2026 |
| Rocky_linux | — | Upgrade kernel-zfcpdump-modules-extraUpgrade rtlaUpgrade kernel-devel-matchedUpgrade kernel-modules-extraUpgrade kernel-rt-debug-modulesUpgrade kernel-uki-virtUpgrade kernel-debug-debuginfoUpgrade kernel-debug-modules-coreUpgrade kernel-debugUpgrade kernel-debuginfoUpgrade kernel-debug-coreUpgrade perf-debuginfoUpgrade kernel-rt-debug-modules-extraUpgrade kernelUpgrade kernel-coreUpgrade kernel-develUpgrade kernel-rt-debugUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-zfcpdumpUpgrade libperfUpgrade kernel-modulesUpgrade kernel-debug-uki-virtUpgrade kernel-rt-coreUpgrade kernel-debug-develUpgrade kernel-zfcpdump-develUpgrade kernel-rt-debug-develUpgrade kernel-zfcpdump-debuginfoUpgrade kernel-modules-coreUpgrade kernel-tools-debuginfoUpgrade python3-perfUpgrade kernel-zfcpdump-coreUpgrade kernel-rt-modulesUpgrade kernel-rtUpgrade kernel-rt-debuginfoUpgrade python3-perf-debuginfoUpgrade kernel-debug-modules-extraUpgrade kernel-debug-modulesUpgrade kernel-tools-libs-develUpgrade kernel-zfcpdump-modules-coreUpgrade kernel-rt-debug-modules-coreUpgrade kernel-debug-devel-matchedUpgrade kernel-rt-modules-extraUpgrade kernel-debuginfo-common-s390xUpgrade libperf-debuginfoUpgrade kernel-uki-virt-addonsUpgrade kernel-rt-modules-coreUpgrade kernel-rt-debug-coreUpgrade kernel-rt-debug-debuginfoUpgrade perfUpgrade kernel-toolsUpgrade kernel-rt-develUpgrade kernel-zfcpdump-modulesUpgrade rvUpgrade kernel-zfcpdump-devel-matchedUpgrade kernel-tools-libs | Oct 5, 2026 | Sep 30, 2026 |
| Ubuntu | — | Upgrade linux-image-lowlatency-64k-6.8Upgrade linux-image-oem-22.04cUpgrade linux-image-oem-24.04bUpgrade linux-image-oracleUpgrade linux-image-raspi-realtimeUpgrade linux-image-realtimeUpgrade linux-image-oracle-lts-24.04Upgrade linux-image-realtime-hwe-22.04Upgrade linux-image-aws-6.17Upgrade linux-image-azure-fde-6.17Upgrade linux-image-nvidia-64k-hwe-24.04Upgrade linux-image-6.17.0-1026-nvidiaUpgrade linux-image-6.8.0-1065-gcp-fipsUpgrade linux-image-6.8.0-1064-azureUpgrade linux-image-6.8.0-1065-gcp-64kUpgrade linux-image-6.8.0-1034-xilinxUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-virtualUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-gkeopUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-xilinxUpgrade linux-image-nvidia-tegra-rt-6.8Upgrade linux-image-virtual-hwe-24.04Upgrade linux-image-virtual-hwe-22.04Upgrade linux-image-nvidia-lowlatency-64k-6.8Upgrade linux-image-6.17.0-1018-oracle-64kUpgrade linux-image-6.8.0-137-genericUpgrade linux-image-6.8.0-1059-oracleUpgrade linux-image-6.8.0-2051-raspi-realtimeUpgrade linux-image-gcp-fips-6.8Upgrade linux-image-generic-lpaeUpgrade linux-image-oem-24.04aUpgrade linux-image-raspi-6.17Upgrade linux-image-6.17.0-1028-oemUpgrade linux-image-gke-6.8Upgrade linux-image-generic-hwe-22.04Upgrade linux-image-6.8.0-1063-azure-fdeUpgrade linux-image-6.8.0-1064-azure-fipsUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-gcp-6.8Upgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-gkeUpgrade linux-image-oem-24.04dUpgrade linux-image-genericUpgrade linux-image-azure-fips-6.8Upgrade linux-image-6.17.0-1020-gcp-64kUpgrade linux-image-6.8.0-1062-raspiUpgrade linux-image-fips-6.8Upgrade linux-image-6.8.0-1062-aws-fipsUpgrade linux-image-oracle-64kUpgrade linux-image-realtime-6.17Upgrade linux-image-6.8.0-1065-gcpUpgrade linux-image-oem-22.04dUpgrade linux-image-6.17.0-40-genericUpgrade linux-image-6.8.0-1031-nvidia-tegraUpgrade linux-image-virtual-6.17Upgrade linux-image-oem-24.04Upgrade linux-image-oem-22.04Upgrade linux-image-6.17.0-1018-azure-fdeUpgrade linux-image-aws-64kUpgrade linux-image-azure-6.8Upgrade linux-image-nvidiaUpgrade linux-image-nvidia-tegraUpgrade linux-image-nvidia-64kUpgrade linux-image-azure-fde-6.8Upgrade linux-image-nvidia-hwe-24.04Upgrade linux-image-lowlatency-64kUpgrade linux-image-nvidia-tegra-6.8Upgrade linux-image-intel-iotgUpgrade linux-image-nvidia-lowlatency-6.8Upgrade linux-image-gcpUpgrade linux-image-gcp-64k-6.8Upgrade linux-image-generic-64kUpgrade linux-image-intel-iot-realtimeUpgrade linux-image-aws-6.8Upgrade linux-image-gke-64kUpgrade linux-image-azure-lts-24.04Upgrade linux-image-azureUpgrade linux-image-6.8.0-1060-nvidia-lowlatency-64kUpgrade linux-image-gkeop-6.8Upgrade linux-image-6.8.1-1057-realtimeUpgrade linux-image-realtime-hwe-24.04Upgrade linux-image-azure-fipsUpgrade linux-image-6.8.0-137-lowlatencyUpgrade linux-image-6.8.0-1060-nvidiaUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-generic-64k-6.8Upgrade linux-image-generic-64k-6.17Upgrade linux-image-azure-fdeUpgrade linux-image-gke-64k-6.8Upgrade linux-image-raspi-6.8Upgrade linux-image-oem-24.04cUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-lowlatency-6.8Upgrade linux-image-gcp-64k-6.17Upgrade linux-image-xilinx-6.8Upgrade linux-image-gcp-fipsUpgrade linux-image-fipsUpgrade linux-image-virtual-6.8Upgrade linux-image-oracle-6.8Upgrade linux-image-ibm-6.8Upgrade linux-image-azure-6.17Upgrade linux-image-aws-64k-6.8Upgrade linux-image-6.8.0-138-generic-64kUpgrade linux-image-6.8.0-137-lowlatency-64kUpgrade linux-image-6.17.0-1021-raspiUpgrade linux-image-6.17.0-40-generic-64kUpgrade linux-image-nvidia-6.17Upgrade linux-image-6.8.0-1047-gkeopUpgrade linux-image-oracle-6.17Upgrade linux-image-lowlatencyUpgrade linux-image-awsUpgrade linux-image-gcp-64kUpgrade linux-image-raspi-realtime-6.8Upgrade linux-image-oracle-64k-6.8Upgrade linux-image-6.17.0-1019-aws-64kUpgrade linux-image-6.17.0-1018-oracleUpgrade linux-image-6.8.0-1060-gkeUpgrade linux-image-6.8.0-1031-nvidia-tegra-rtUpgrade linux-image-6.17.0-1021-azureUpgrade linux-image-oracle-64k-6.17Upgrade linux-image-nvidia-tegra-rtUpgrade linux-image-aws-fips-6.8Upgrade linux-image-6.8.0-1062-aws-64kUpgrade linux-image-6.8.0-138-genericUpgrade linux-image-6.8.0-1060-nvidia-64kUpgrade linux-image-6.17.0-1020-gcpUpgrade linux-image-6.17.0-1017-realtimeUpgrade linux-image-realtime-6.8.1Upgrade linux-image-nvidia-64k-6.8Upgrade linux-image-nvidia-64k-6.17Upgrade linux-image-kvmUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-ibm-classicUpgrade linux-image-oem-22.04aUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-generic-6.17Upgrade linux-image-azure-fde-lts-24.04Upgrade linux-image-aws-64k-lts-24.04Upgrade linux-image-6.8.0-1062-awsUpgrade linux-image-6.17.0-1026-nvidia-64kUpgrade linux-image-aws-fipsUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-nvidia-6.8Upgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-6.8.0-137-generic-64kUpgrade linux-image-6.8.0-1059-oracle-64kUpgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-oem-22.04bUpgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-6.8.0-1062-ibmUpgrade linux-image-6.8.0-1060-nvidia-lowlatencyUpgrade linux-image-gcp-6.17Upgrade linux-image-6.8.0-137-fipsUpgrade linux-image-6.8.0-1060-gke-64kUpgrade linux-image-6.17.0-1019-awsUpgrade linux-image-raspiUpgrade linux-image-aws-lts-24.04Upgrade linux-image-ibmUpgrade linux-image-gcp-lts-24.04Upgrade linux-image-oem-6.17Upgrade linux-image-generic-6.8Upgrade linux-image-aws-64k-6.17 | 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 |
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