CVE-2026-64582: RDMA/rxe: Fix a use-after-free problem in rxe_mmap
In the Linux kernel, the following vulnerability has been resolved:
RDMA/rxe: Fix a use-after-free problem in rxemmap
rxemmap() removes a rxemmapinfo struct from the pendingmmaps list and releases pendinglock while the struct's kref is still at 1:
listdelinit(&ip->pendingmmaps); spinunlockbh(&rxe->pendinglock); / ref == 1, no lock held / ret = remapvmallocrange(vma, ip->obj, 0); / walks PTEs / [...] rxevmaopen(vma); / krefget, ref → 2 / remapvmallocrangepartial() walks PTEs without any lock.
A concurrent DESTROYCQ ioctl on another CPU calls:
krefput(&q->ip->ref, rxemmaprelease) / ref 1→0 / vfree(ip->obj) / clears vmalloc PTEs mid-walk / kfree(ip) / frees rxemmapinfo /
This yields:
1. Kernel crash, vmalloctopage() returns NULL when vfree wins the per-PTE race -> vminsertpage(NULL) → GPF in validatepagebeforeinsert
2. Page UAF, vmalloctopage() reads a stale PTE before vfree clears it. User VMA holds a PTE to a free'd page which might eventually get reallocated later by vmalloc which allows the attacker to get a clean page-level UAF.
It is worth noting that even though a page-level UAF is possible given the strong primitive, it is statistically very difficult to achieve given the very short time window (after the last insertpage and before the krefget).
The call trace are as below:
Oops: general protection fault, probably for non-canonical address 0xdffffc0000000001: 0000 [#1] SMP KASAN NOPTI KASAN: null-ptr-deref in range [0x0000000000000008-0x000000000000000f] CPU: 0 UID: 1000 PID: 413 Comm: poc Not tainted 7.0.0-rc5-dirty #28 PREEMPT(lazy) Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014 RIP: 0010:validatepagebeforeinsert+0x32/0x300 Code: e5 41 57 41 56 49 89 fe 41 55 41 54 53 48 89 f3 e8 93 b5 a3 ff 48 8d 7b 08 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03 <80> 3c 02 00 0f 85 7b 02 00 00 4c 8b 63 08 31 ff 4d 89 e5 41 83 e5 RSP: 0018:ffff88811b15f2f0 EFLAGS: 00000202 RAX: dffffc0000000000 RBX: 0000000000000000 RCX: 0000000000000000 RDX: 0000000000000001 RSI: 0000000000000000 RDI: 0000000000000008 RBP: ffff88811b15f318 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000000 R12: ffff8881181eee00 R13: 0000000000000000 R14: ffff8881181eee00 R15: ffff8881181eee20 FS: 00007b1e000f76c0(0000) GS:ffff8884268e0000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007b1e00a24ac0 CR3: 0000000116eb3000 CR4: 00000000000006f0 Call Trace: <TASK> insertpage+0x8f/0x190 ? pfxinsertpage+0x10/0x10 ? kasansaveallocinfo+0x38/0x60 vminsertpage+0x2e7/0x400 remapvmallocrangepartial+0x212/0x3e0 remapvmallocrange+0x6e/0xb0 ? kasancheckwrite+0x14/0x30 rxemmap+0x2e9/0x5d0 ibuverbsmmap+0x1ad/0x2c0 mmapregion+0x12c2/0x2ad0 ? pfxmmapregion+0x10/0x10 ? sanitizercovtraceswitch+0x58/0xb0 ? masprevslot+0x360/0x39c0 ? sanitizercovtraceswitch+0x58/0xb0 ? masnextslot+0x1e5b/0x2f40 ? sanitizercovtracecmp8+0x18/0x30 ? unmappedareatopdown+0x4dd/0x610 ? kfree+0x1b1/0x440 ? freecpumaskvar+0x16/0x30 ? kasanslabfree+0x7d/0xa0 ? sanitizercovtracecmp8+0x18/0x30 mmapregion+0x2e6/0x3c0 dommap+0xa3e/0x12a0 ? pfxdommap+0x10/0x10 ? kasancheckwrite+0x14/0x30 ? downwritekillable+0xba/0x160 ? pfxdownwritekillable+0x10/0x10 ? sanitizercovtracecmp4+0x16/0x30 vmmmappgoff+0x2d4/0x4a0 ? pfxvmmmappgoff+0x10/0x10 ? fget+0x1bf/0x270 ksysmmappgoff+0x40c/0x690 ? sanitizercovtraceconstcmp4+0x16/0x30 ? pfxksysmmappgoff+0x10/0x10 ? kasancheckwrite+0x14/0x30 ? rawspintrylock+0xbb/0x130 ? pfxrawspintrylock+0x10/0x10 x64sysmmap+0x135/0x1e0 x64sysc ---truncated---
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
Linux kernel (rxe_mmap)to a version that resolves this vulnerability.Patch RDMA/rxe: Fix a use-after-free problem in rxe_mmap - Compensating control
Apply an updated Linux kernel that contains the fix for the rxe_mmap use-after-free / page-level UAF so that remap_vmalloc_range_partial() no longer walks stale PTEs during vfree.
Event History
Frequently Asked Questions
What is the severity of CVE-2026-64582?
CVE-2026-64582 has a severity rating of 52, indicating a significant security concern.
How do I fix CVE-2026-64582?
To fix CVE-2026-64582, update to the latest version of the Linux kernel where the vulnerability has been addressed.
What type of vulnerability is associated with CVE-2026-64582?
CVE-2026-64582 is categorized as a Use After Free vulnerability affecting the Linux kernel's RDMA/rxe subsystem.
What components are affected by CVE-2026-64582?
The vulnerability specifically affects the rxe_mmap function in the RDMA/rxe implementation of the Linux kernel.
When was CVE-2026-64582 published?
CVE-2026-64582 was published on August 5, 2026.