Katalog CVE

CVE-2026-97995

Nieznane
Opublikowano: Przetłumaczono: NVD NIST

Streszczenie

W jądrze Linux w module virtio_console występuje błąd polegający na zwalnianiu buforów control-out podczas usuwania urządzenia. Funkcja __send_control_msg() publikuje &portdev->cpkt jako cookie kolejki control-out, a remove_vqs() przekazuje pozostałe cookie do free_buf(), która traktuje je jako struct port_buffer i odczytuje sgpages. Jeśli komunikat kontrolny wciąż znajduje się w c_ovq w momencie odłączenia urządzenia, free_buf() odczytuje poza obiekt ports_device, co KASAN zgłasza jako slab-out-of-bounds.

Ocena ryzyka

Może prowadzić do odczytu poza granicami pamięci (out-of-bounds read) i potencjalnej awarii jądra lub ujawnienia danych. Wymaga możliwości odłączenia urządzenia virtio_console.

Rekomendacja

Zaktualizuj jądro Linux do wersji zawierającej poprawkę. Poprawka opróżnia c_ovq bez zwalniania, ponieważ pakiet należy do portdev i jest zwalniany razem z nim.

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: virtio_console: do not free control-out buffers on remove __send_control_msg() publishes &portdev->cpkt as the control-out virtqueue cookie. remove_vqs() walks every virtqueue and passes leftover cookies to free_buf(), which treats them as struct port_buffer and reads sgpages. If a control message is still on c_ovq when the device is unbound, free_buf() reads past the ports_device object. KASAN reported slab-out-of-bounds in free_buf(): free_buf remove_vqs virtcons_remove unbind_store The object was the ports_device allocated in virtcons_probe(). Drain c_ovq without freeing. The packet lives in portdev and is released with it.

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