Katalog CVE

CVE-2026-31576

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

Streszczenie

W jądrze Linuxa zidentyfikowano podatność w sterowniku hackrf, która prowadzi do warunków wyścigu i błędów użycia po zwolnieniu pamięci. Problem występuje, gdy pamięć urządzenia jest zwalniana po zarejestrowaniu urządzenia, co może prowadzić do sytuacji użycia po zwolnieniu (UAF) oraz podwójnego zwolnienia pamięci.

Ocena ryzyka

Organizacje mogą być narażone na ataki, które wykorzystują tę podatność, co może prowadzić do nieautoryzowanego dostępu do pamięci i potencjalnych awarii systemu. W szczególności, atakujący mogą wykorzystać otwarte uchwyty do urządzenia, aby uzyskać dostęp do zwolnionej pamięci.

Rekomendacja

Zaleca się modyfikację kodu sterownika hackrf, aby pamięć była zwalniana tylko przez funkcję release(), a nie bezpośrednio przez kfree(). Należy również monitorować i aktualizować systemy, aby zminimalizować ryzyko związane z tą podatnością.

Powiązane podatności

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

In the Linux kernel, the following vulnerability has been resolved: media: hackrf: fix to not free memory after the device is registered in hackrf_probe() In hackrf driver, the following race condition occurs: ``` CPU0 CPU1 hackrf_probe() kzalloc(); // alloc hackrf_dev .... v4l2_device_register(); .... fd = sys_open("/path/to/dev"); // open hackrf fd .... v4l2_device_unregister(); .... kfree(); // free hackrf_dev .... sys_ioctl(fd, ...); v4l2_ioctl(); video_is_registered() // UAF!! .... sys_close(fd); v4l2_release() // UAF!! hackrf_video_release() kfree(); // DFB!! ``` When a V4L2 or video device is unregistered, the device node is removed so new open() calls are blocked. However, file descriptors that are already open-and any in-flight I/O-do not terminate immediately; they remain valid until the last reference is dropped and the driver's release() is invoked. Therefore, freeing device memory on the error path after hackrf_probe() has registered dev it will lead to a race to use-after-free vuln, since those already-open handles haven't been released yet. And since release() free memory too, race to use-after-free and double-free vuln occur. To prevent this, if device is registered from probe(), it should be modified to free memory only through release() rather than calling kfree() directly.

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