Katalog CVE

CVE-2026-89793

WysokieCVSS 7.8
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.21%

Percentyl 11 - wyżej niż 11% wszystkich znanych CVE

Streszczenie

W jądrze Linux funkcja ublk_ch_mmap() odrzuca żądania mmap z ustawionym VM_WRITE, ale nigdy nie czyści VM_MAYWRITE na wynikowym mapowaniu tylko do odczytu. Umożliwia to demonowi w przestrzeni użytkownika mmap bufora poleceń z PROT_READ, a następnie podniesienie go do PROT_WRITE przez mprotect(). Bufor poleceń zawiera wpisy struct ublksrv_io_desc zapisywane przez jądro, więc zapisywalne mapowanie pozwala procesowi bez uprawnień uszkodzić pola takie jak addr, op_flags, nr_sectors i start_sector.

Ocena ryzyka

Nieuprzywilejowany proces demona może uszkodzić pola ABI bufora poleceń jądra, prowadząc do niezdefiniowanego zachowania lub eskalacji uprawnień. Ryzyko dotyczy systemów korzystających z ublk.

Rekomendacja

Zaktualizuj jądro Linux do wersji zawierającej poprawkę czyszczącą VM_MAYWRITE na mapowaniu tylko do odczytu urządzenia znakowego ublk. Ogranicz dostęp do interfejsu ublk do zaufanych procesów.

Inne podatności w Linux kernel

Zobacz wszystkie
Oryginalny opis (angielski, źródło NVD)

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.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS