Katalog CVE

CVE-2026-80952

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 jądrze Linux funkcja i3c_master_unregister_i3c_devs() czyści i3cdev->dev->desc przed wywołaniem device_unregister(). Podczas wyrejestrowania i3c_device_uevent() oraz wyścigowy modalias_show() mogą zobaczyć NULL desc i użyć niezainicjalizowanej struktury na stosie, ujawniając zawartość stosu jądra. Może też wystąpić use-after-free przy zapisie desc po zwolnieniu urządzenia.

Ocena ryzyka

Wyciek zawartości stosu jądra może ułatwić obejście mechanizmów ochronnych (KASLR), a use-after-free może prowadzić do awarii lub eskalacji uprawnień. Dotyczy systemów z magistralą I3C.

Rekomendacja

Zaktualizować jądro Linux do wersji, w której desc pozostaje ważny do zakończenia device_unregister(), z dodatkowym get_device()/put_device(). Do czasu aktualizacji ograniczyć dynamiczne rejestrowanie/wyrejestrowywanie urządzeń I3C.

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: i3c: master: Fix info leak and UAF in device unregister path i3c_master_unregister_i3c_devs() clears i3cdev->dev->desc before calling device_unregister(). During device_unregister(), device_del() emits a KOBJ_REMOVE uevent and unbinds the driver while the device descriptor is still expected to be valid. As a result, i3c_device_uevent() and a racing modalias_show() can observe a NULL desc and fall back to an uninitialized stack struct i3c_device_info, leaking kernel stack contents in the generated modalias. Driver .remove() callbacks may also encounter an unexpected NULL desc during unbind. Keep desc valid until device_unregister() has completed. Since device_unregister() drops the device reference and may free the device, take an extra reference with get_device() before unregistering. Clear desc afterwards and release the extra reference with put_device(). This preserves the release-time invariant that desc must be NULL while avoiding both the information leak and a potential use-after-free from writing desc after the device has been released.

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