Katalog CVE

CVE-2026-31485

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

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.13%

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

Streszczenie

W sterowniku SPI dla układów Freescale LPSPI (spi-fsl-lpspi) w jądrze Linux wykryto błąd kolejności wyłączania prowadzący do użycia po zwolnieniu (UAF). Rejestracja kontrolera SPI za pomocą devm_spi_register_controller() opóźniała jego wyrejestrowanie, podczas gdy funkcja fsl_lpspi_remove() natychmiast usuwała kanały DMA, co przy aktywnym transferze SPI powodowało dereferencję wskaźnika NULL.

Ocena ryzyka

Atakujący może wykorzystać tę podatność do wywołania awarii systemu (kernel panic) poprzez zainicjowanie transferu SPI w trakcie odłączania sterownika, co prowadzi do odmowy usługi (DoS).

Rekomendacja

Należy natychmiast zaktualizować jądro Linux do wersji zawierającej poprawkę, która zastępuje devm_spi_register_controller() na spi_register_controller() i dodaje jawne wywołanie spi_unregister_controller() w funkcji fsl_lpspi_remove().

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: spi: spi-fsl-lpspi: fix teardown order issue (UAF) There is a teardown order issue in the driver. The SPI controller is registered using devm_spi_register_controller(), which delays unregistration of the SPI controller until after the fsl_lpspi_remove() function returns. As the fsl_lpspi_remove() function synchronously tears down the DMA channels, a running SPI transfer triggers the following NULL pointer dereference due to use after free: | fsl_lpspi 42550000.spi: I/O Error in DMA RX | Unable to handle kernel NULL pointer dereference at virtual address 0000000000000000 [...] | Call trace: | fsl_lpspi_dma_transfer+0x260/0x340 [spi_fsl_lpspi] | fsl_lpspi_transfer_one+0x198/0x448 [spi_fsl_lpspi] | spi_transfer_one_message+0x49c/0x7c8 | __spi_pump_transfer_message+0x120/0x420 | __spi_sync+0x2c4/0x520 | spi_sync+0x34/0x60 | spidev_message+0x20c/0x378 [spidev] | spidev_ioctl+0x398/0x750 [spidev] [...] Switch from devm_spi_register_controller() to spi_register_controller() in fsl_lpspi_probe() and add the corresponding spi_unregister_controller() in fsl_lpspi_remove().

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