Katalog CVE

CVE-2026-90336

Nieznane
Opublikowano: Przetłumaczono: NVD NIST

Streszczenie

W jądrze Linux w funkcji uart_register_driver() występuje problem polegający na tym, że w przypadku niepowodzenia tty_alloc_driver() wskaźnik drv->state pozostaje wskazujący na zwolnioną pamięć, a w przypadku niepowodzenia tty_register_driver() wskaźnik drv->tty_driver również pozostaje po zwolnieniu referencji. Sterowniki używające drv->state jako flagi 'już zarejestrowany' mogą pominąć rejestrację przy następnym probe i przekazać zwolniony stan do uart_add_one_port().

Ocena ryzyka

Ryzyko obejmuje użycie po zwolnieniu (use-after-free) podczas ponownej próby rejestracji portu, co może prowadzić do awarii systemu lub nieprzewidywalnego zachowania sterowników szeregowych.

Rekomendacja

Zastosuj łatkę, która czyści wskaźniki drv->state i drv->tty_driver w ścieżkach błędów, oraz zaktualizuj jądro do wersji z poprawką.

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: serial: core: clear freed pointers on uart_register_driver() failure uart_register_driver() leaves drv->state pointing to freed memory when tty_alloc_driver() fails. If tty_register_driver() fails, drv->tty_driver also retains a pointer after its reference is dropped. Drivers that use drv->state as an "already registered" flag can then skip registration on the next probe and pass the freed state to uart_add_one_port(). This issue was found with failslab on QEMU's raspi1ap board by failing registration and binding the PL011 port again. Clear both pointers on their failure paths, as uart_unregister_driver() already does.

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