CVE-2024-45013
KrytyczneCVSS 9.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 8 - wyżej niż 8% wszystkich znanych CVE
Streszczenie
W jądrze Linuxa występuje podatność use-after-free w sterowniku NVMe. Problem polega na tym, że zatrzymywanie mechanizmu keep-alive nie zostało przeniesione do funkcji nvme_uninit_ctrl(), co może prowadzić do uruchomienia i pozostawienia w oczekiwaniu pracy keep-alive po nieudanym starcie kontrolera, a następnie do użycia po zwolnieniu pamięci podczas wyładowywania sterownika.
Ocena ryzyka
Podatność może doprowadzić do paniki jądra (kernel panic) w przypadku awarii połączenia, co może skutkować niedostępnością systemu lub usług.
Rekomendacja
Zastosuj aktualizację jądra Linuxa zawierającą poprawkę, która przenosi zatrzymywanie keep-alive do nvme_uninit_ctrl().
Oryginalny opis (angielski, źródło NVD)
In the Linux kernel, the following vulnerability has been resolved: nvme: move stopping keep-alive into nvme_uninit_ctrl() Commit 4733b65d82bd ("nvme: start keep-alive after admin queue setup") moves starting keep-alive from nvme_start_ctrl() into nvme_init_ctrl_finish(), but don't move stopping keep-alive into nvme_uninit_ctrl(), so keep-alive work can be started and keep pending after failing to start controller, finally use-after-free is triggered if nvme host driver is unloaded. This patch fixes kernel panic when running nvme/004 in case that connection failure is triggered, by moving stopping keep-alive into nvme_uninit_ctrl(). This way is reasonable because keep-alive is now started in nvme_init_ctrl_finish().

