Katalog CVE

CVE-2026-74325

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 w sterowniku WiFi mt76 występuje problem z użyciem po zwolnieniu w funkcji mt76_put_vif_phy_link(). Funkcja zwalnia offchannel mlink za pomocą kfree(), ale rcu_assign_pointer nie czeka na istniejących czytelników RCU, którzy mogą nadal używać wskaźnika. Ścieżka TX może dereferencjonować zwolnioną pamięć.

Ocena ryzyka

Użycie po zwolnieniu może prowadzić do awarii systemu lub nieprzewidywalnego zachowania, szczególnie podczas intensywnego ruchu sieciowego.

Rekomendacja

Zaleca się zastosowanie poprawki jądra, która używa kfree_rcu() zamiast kfree(), aby zapewnić bezpieczne zwolnienie po zakończeniu wszystkich czytelników RCU.

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

In the Linux kernel, the following vulnerability has been resolved: wifi: mt76: use kfree_rcu for offchannel link in mt76_put_vif_phy_link mt76_put_vif_phy_link() frees the offchannel mlink with plain kfree() after rcu_assign_pointer(NULL). However, rcu_assign_pointer only prevents future RCU readers from obtaining the pointer -- it does not wait for existing readers that already hold it via rcu_dereference. The TX datapath (e.g. mt7996_mac_write_txwi) dereferences mlink->wcid and mlink->idx under rcu_read_lock. If a TX softirq obtained the pointer via rcu_dereference just before the NULL assignment, it will dereference freed memory after the kfree. struct mt76_vif_link already contains an rcu_head field that is unused at this free site -- a developer oversight, since the adjacent kfree_rcu_mightsleep call for rx_sc in the same function shows the pattern was understood. Replace kfree(mlink) with kfree_rcu(mlink, rcu_head).

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