CVE-2026-89793 ublk: clear VM_MAYWRITE on read-only ublk char device mmap
An unprivileged daemon can corrupt kernel-written I/O descriptors by upgrading a read-only mmap to writable, potentially leading to privilege escalation or code execution.
- Exploited in the wild
- Not known
- Login needed
- Any signed-in user
- Attackable
- Local or same network only
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2026-89793?
CVE-2026-89793 is a high-severity vulnerability in Linux, published on 16 Sep 2026. It can only be exploited from the same machine or local network, with no action from the victim.
Official description
In the Linux kernel, the following vulnerability has been resolved:
ublk: clear VM_MAYWRITE on read-only ublk char device mmap
ublk_ch_mmap() rejects mmap requests with VM_WRITE set, but never clears VM_MAYWRITE on the resulting read-only mapping. This allows a userspace daemon to mmap the per-queue command buffer PROT_READ, then upgrade it to PROT_WRITE via mprotect(), since VM_MAYWRITE was never cleared.
The command buffer holds struct ublksrv_io_desc entries that are kernel-written ABI; a writable mapping lets an unprivileged daemon process corrupt fields such as addr, op_flags, nr_sectors, and start_sector.
Same bug class as the drm/panthor and drm/vc4 VM_MAYWRITE fixes, and the 2026-08-13 ptp/vmclock fix (a5edadbae57e).
Verified via mprotect() PoC: before the fix, a PROT_READ mapping can be upgraded to PROT_READ|PROT_WRITE and a write into the command buffer corrupts io_desc fields (confirmed under KASAN). After the fix, mprotect() returns -EACCES.
Which versions are affected by CVE-2026-89793?
How do I fix CVE-2026-89793?
Apply the vendor's patch.
Is CVE-2026-89793 being exploited?
There is no known exploitation of CVE-2026-89793 in the wild and no public exploit code.
Sources
Also known as AZL-101334, BELL-CVE-2026-89793, DEBIAN-CVE-2026-89793, GHSA-fp98-h54j-vwfj, UBUNTU-CVE-2026-89793.