Katalog CVE

CVE-2026-74574

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

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.12%

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

Streszczenie

W jądrze Linuxa w sterowniku dmaengine idxd występuje problem z czyszczeniem po nieudanej konfiguracji fdev w funkcji idxd_cdev_open(). Ścieżki failed_dev_add i failed_dev_name zwalniają referencję do urządzenia plikowego, trzymając wq->wq_lock, co może prowadzić do zakleszczenia, jeśli put_device() wywoła funkcję zwrotną idxd_file_dev_release() próbującą ponownie przejąć ten sam lock. Dodatkowo te ścieżki przechodzą do dalszego czyszczenia kontekstu, które może działać na zwolnionej pamięci. Poprawka przenosi idxd_wq_get() przed możliwą awarię i zwalnia lock przed put_device().

Ocena ryzyka

Ryzyko obejmuje zakleszczenie systemu (deadlock) lub użycie po zwolnieniu (use-after-free) w sterowniku idxd, co może prowadzić do awarii systemu lub nieprzewidywalnego zachowania. Wymaga to jednak lokalnego dostępu i możliwości otwierania urządzeń cdev.

Rekomendacja

Zaleca się aktualizację jądra Linuxa do wersji zawierającej poprawkę dla tego problemu. Należy również monitorować dostęp do urządzeń idxd i ograniczyć go do zaufanych użytkowników.

Oryginalny opis (angielski, źródło NVD)

In the Linux kernel, the following vulnerability has been resolved: dmaengine: idxd: fix fdev setup failure cleanup in idxd_cdev_open() The failed_dev_add and failed_dev_name paths drop the file-device reference while wq->wq_lock is still held. If put_device(fdev) drops the last reference, idxd_file_dev_release() runs synchronously and tries to take wq->wq_lock again, deadlocking. Those paths also fall through into the later ctx cleanup labels even though idxd_file_dev_release() owns that cleanup and frees ctx. This can make idxd_xa_pasid_remove(ctx) and kfree(ctx) operate on a freed context. Move idxd_wq_get() before file-device setup can fail, since the release callback always calls idxd_wq_put(). Then unlock wq->wq_lock before put_device(fdev) and return directly from the file-device setup failure path, leaving ctx cleanup to the release callback.

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