CVE-2026-89793

ublk: clear VM_MAYWRITE on read-only ublk char device mmap

State
Published
Severity
7.8 High
Published
Sep 16, 2026
Updated
Oct 19, 2026
Reserved
Sep 11, 2026

Read the record on cve.org

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.

Scores

CVSSScoreVectorSource
3.17.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 71f28f3136aff5890cd56de78abc673f8393cad9 to before be41733c24be58e2a1ef718c80fafdfb98a40d5eAffected
  • 71f28f3136aff5890cd56de78abc673f8393cad9 to before 5befd06a72216869b607cf7724a4f16c6a2d3999Affected
  • 71f28f3136aff5890cd56de78abc673f8393cad9 to before e373c1acdbcf88cec533ece9f589020adaed0a78Affected
  • 71f28f3136aff5890cd56de78abc673f8393cad9 to before fa5e1bc673ca59722608af67b27e65dba0c97926Affected
  • 71f28f3136aff5890cd56de78abc673f8393cad9 to before 6e2b571b0a54755b06e092501913e1dfefe75d6cAffected
LinuxLinux
  • 6.0Affected
  • before 6.0Not affected
  • 6.6.157 through 6.6.*Not affected
  • 6.12.110 through 6.12.*Not affected
  • 6.18.51 through 6.18.*Not affected
  • 7.2.5 through 7.2.*Not affected
  • 7.3 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.