Katalog CVE

CVE-2026-64103

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

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.18%

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

Streszczenie

W sterowniku ISCI dla jądra Linux wykryto podatność use-after-free podczas usuwania urządzenia. Zadanie (tasklet) obsługi zakończenia operacji nie jest zabijane przed zakończeniem pracy kontrolera, co pozwala na wyścig między przerwaniami a czyszczeniem pamięci. Po zwolnieniu struktury ihost, opóźnione zadanie może nadal odwoływać się do zwolnionej pamięci, prowadząc do awarii lub potencjalnego wykorzystania.

Ocena ryzyka

Organizacja narażona jest na awarię systemu (kernel panic) lub potencjalne wykonanie dowolnego kodu w kontekście jądra podczas odłączania lub wyładowywania sterownika ISCI. Podatność może być wykorzystana lokalnie przez atakującego z dostępem do interfejsu SCSI.

Rekomendacja

Należy niezwłocznie zaktualizować jądro Linux do wersji zawierającej poprawkę (commit zabijający tasklet po wyciszeniu źródła przerwań). Jeśli aktualizacja nie jest możliwa, należy unikać dynamicznego odłączania urządzeń ISCI.

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: scsi: isci: Fix use-after-free in device removal path The ISCI completion tasklet is initialized in isci_host_alloc() (drivers/scsi/isci/init.c:496) and scheduled from both MSI-X and legacy interrupt handlers (drivers/scsi/isci/host.c:223,613). isci_host_deinit() stops the controller and waits for stop completion, but it never kills completion_tasklet before teardown continues. A top-of-function tasklet_kill() is not sufficient here: interrupts are only disabled when isci_host_stop_complete() runs, so until wait_for_stop() returns the IRQ handlers can still requeue the tasklet. The tasklet callback also re-enables interrupts after draining completions, so killing the tasklet before the source is quiesced leaves the same race open. Once wait_for_stop() returns, no further IRQ-driven scheduling can occur. Kill completion_tasklet there so teardown cannot race a queued tasklet running on a dead ihost. On remove or unload, the stale callback can otherwise dereference ihost and touch ihost->smu_registers after the host lifetime ends. A UML + KASAN analogue reproduced the failure class both with no tasklet_kill() and with tasklet_kill() placed before source quiesce, and stayed clean once the kill happened after quiescing the scheduling source. This mirrors commit f6ab594672d4 ("scsi: aic94xx: fix use-after-free in device removal path"), but ISCI needs the kill after wait_for_stop().

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