CVE-2026-97595
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
mac802154: naprawiono możliwość wykorzystania danych sdata poprzez kolejkowane ramki RX
Producent oprogramowania RX ieee802154_subif_frame() kolejkuje otrzymanie sygnału nawigacyjnego
i ramki poleceń MAC na local->rx_beacon_list / rx_mac_cmd_list i
planuje proces roboczy kontekstu procesu, przechowując surowy plik mac_pkt->sdata (i
skb->dev == sdata->dev) bez odniesienia i bez żadnych blokad:
- listy nie mają blokady: producent softirq list_add_tail()s podczas gdy
mac_wq worker list_del()s, więc interfejsy rodzeństwa na tym samym fiszy są uszkodzone
lista;
- pracownicy wyrejestrowują interfejs po jego zwolnieniu.
mac802154_rx_mac_cmd_worker() dotyka bezpośrednio mac_pkt->sdata i
mac802154_rx_beacon_worker() -> mac802154_process_beacon() dereferencje
skb->dev (== sdata->dev). Usunięcie interfejsu powoduje zwolnienie jego danych
(netdev_priv), podczas gdy ramka w kolejce nadal na nią wskazuje, więc późniejszy proces roboczy
run jest darmowy po użyciu.
Reprodukowane przez KASAN poprzez zalanie interfejsu ofiary poleceniem MAC
ramki i usunięcie ich (ścieżka sygnału nawigacyjnego to ta sama klasa poprzez skb->dev):
BŁĄD: KASAN: płyta-use-after-free w mac802154_rx_mac_cmd_worker+0x463/0x630 [mac802154]
Odczytaj rozmiar 4 pod adresem ffff888002f9ea18 przez zadanie kworker/u8:1/31
Kolejka robocza: phy0-mac-cmds mac802154_rx_mac_cmd_worker [mac802154]
Zadzwoń do śledzenia:
mac802154_rx_mac_cmd_worker+0x463/0x630 [mac802154]
proces_one_work+0x611/0xe80
wątek_pracownika+0x52e/0xdc0
kthread+0x30c/0x630
ret_from_fork+0x2fd/0x3e0
Napraw obie listy razem:
- dodaj local->rx_lock i korzystaj z niego przy każdym dostępie do listy: softirq
producent (zwykły spin_lock, kontekst softirq) i pracownicy oraz kolor
(spin_lock_bh, kontekst procesu);
- przypnij interfejs na czas życia ramki znajdującej się w kolejce
netdev_hold()/netdev_put(), więc pracownik może bezpiecznie odwołać się do sdata /
skb->dev nawet podczas usuwania interfejsu;
- usuń z kolejki pod blokadą na początku i opróżnij całą listę w pętli
workers (wcześniej przetwarzali jedną ramkę na przebieg i polegali na a
później ustawić w kolejce, aby spuścić resztę);
- usuwać jeszcze nierozpoczęte ramki interfejsu zanim zostanie on wyrejestrowany,
z ieee802154_if_remove() (po okresie karencji RCU) i z
pętla ieee802154_remove_interfaces() — ta ostatnia jest całością
ścieżka rozrywania, która nie przechodzi przez ieee802154_if_remove().
Proces roboczy w locie, który już usunął z kolejki ramkę, zachowuje własnego netdeva
odniesienie; unregister_netdevice() następnie czeka na to w netdev_run_todo(),
który działa w rtnl_unlock() (rtnl zwolniony) i po uruchomieniu interfejsu
został zamknięty, więc nie przypina rtnl. Pracownik zablokowany w stowarzyszeniu
TX opóźnia tylko wyrejestrowanie jednego interfejsu (zwykłe „oczekiwanie na %s
stać się wolnym”), nie obowiązuje rtnl. Służy do tego funkcja netdev_hold().
powód zamiast cancel_work_sync() w rtnl, co spowodowałoby zablokowanie
nieograniczone oczekiwanie MLME TX pracownika przez ieee802154_sync_queue().
Proces roboczy mac-command dodatkowo pomija przetwarzanie w przypadku zatrzymania
interfejs (ieee802154_sdata_running()), unikając niepotrzebnego skojarzenia
reakcja podczas rozbiórki.
>_ Referencje
Dane podatności pochodzą z oficjalnych źródeł (CVE® List / NVD). Opisy po polsku są tłumaczone automatycznie i mogą zawierać nieścisłości – na stronie rekordu można wyświetlić wersję angielską.
This product uses the NVD API but is not endorsed or certified by the NVD.
Copyright © 1999–2026, The MITRE Corporation. CVE is a registered trademark and the CVE logo is a registered trademark of The MITRE Corporation.
CVE Usage: MITRE hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Common Vulnerabilities and Exposures (CVE®). Any copy you make for such purposes is authorized provided that you reproduce MITRE's copyright designation and this license in any such copy. ALL DOCUMENTS AND THE INFORMATION CONTAINED THEREIN PROVIDED BY MITRE ARE PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND.
NVD Terms of Use / CVE® Terms of Use / nvd.nist.gov / cve.org