Odebrany

CVE-2026-99134

opublikowano:
modyfikacja:
Ocena CVSS
n/a
Brak oceny

>_ Opis

Tłumaczenie automatyczne – może zawierać nieścisłości.

W jądrze Linuksa usunięto następującą lukę:

mac802154: napraw wyścig danych i deref NULL na local->assoc_dev

local->assoc_dev jest współdzielony pomiędzy ścieżką skojarzenia i plikiem
proces roboczy odpowiedzi na skojarzenie bez wspólnej synchronizacji.

mac802154_perform_association() przechowuje wskaźnik koordynatora i czeka
za odpowiedź. Jego ścieżki przekroczenia limitu czasu i błędów czyścią wskaźnik i powracają
do mac802154_associate(), co może następnie zwolnić obiekt koordynatora.
Tymczasem mac802154_rx_mac_cmd_worker() może obserwować powiązany bit
i wprowadź mac802154_process_association_resp(), co powoduje wyłuskanie
doc_rozw.

Test bitowy procesu roboczego i dereferencja wskaźnika procedury obsługi nie są takie same
atomowy w odniesieniu do czyszczenia. Oczyszczanie może wyczyścić assoc_dev między nimi,
powodując wyłuskanie NULL lub zwolnij koordynatora na czas odpowiedzi
handler nadal używa wskaźnika.

Zarejestrowany wynik jest wyświetlany w tym samym oknie. asoc_status i
assoc_addr są zapisywane przez procedurę obsługi, ale odczytywane przez ścieżkę skojarzenia
podczas gdy bit kojarzący jest nadal ustawiony, więc druga odpowiedź dla tego samego
request - na przykład złośliwy - może zastąpić je pomiędzy nimi
czyta i pozostawia rozmówcę z niespójną parą statusu i adresu.

Procedura obsługi odpowiedzi potrzebuje jedynie rozszerzonego adresu koordynatora.
Zastąp assoc_dev adresem z pamięci podręcznej, usuwając czas życia wskaźnika
zależność. Chroń adres w pamięci podręcznej i powiązany bit za pomocą a
dedykowany spinlock. Para READ_ONCE()/WRITE_ONCE() nie gwarantuje
atomowy dostęp __le64 we wszystkich architekturach 32-bitowych.

wpan_dev->association_lock nie może być tutaj ponownie użyty: nl802154_associate()
przechowuje go w rdev_associate(), a więc przez cały
mac802154_perform_association() łącznie z oczekiwaniem na odpowiedź.
Osoba obsługująca odpowiedź, która przejmie tę blokadę, otrzyma ją tylko raz
stowarzyszenie już się poddało.

Zresetuj zakończenie, opublikuj adres w pamięci podręcznej i ustaw powiązanie
trochę, trzymając zamek. Osoba obsługująca odpowiedź przejmuje blokadę i ponownie sprawdza
bit i adres w pamięci podręcznej, rejestruje odpowiedź, kasuje bit i
dopiero wtedy uzupełnia kelner. Zatem czyszczenie nie może przejść przez procedurę obsługi
pomiędzy sprawdzeniem stanu i zakończeniem a buforowaną wartością 64-bitową
nie może się rozerwać.

Przewodnik czyści bit przed zakończeniem, a nie obudzony kelner:
w przeciwnym razie pod blokadą wydawana jest funkcja Complete() i druga (np.
złośliwa) odpowiedź może uzyskać ją ponownie przed kelnerem i zastąpić
wynik. Zatem oczekiwanie zakończone sukcesem oznacza, że bit jest już jasny,
a ścieżki sukcesu i negatywnej odpowiedzi powracają bezpośrednio. The
ścieżki błędów transmisji i limitu czasu nadal usuwają je w sekcji assoc_lock, która
serializuje wszelkie odpowiedzi wyścigowe względem czyszczenia podczas powrotu połączenia
błąd, który już wybrał. Obie ścieżki migawki assoc_status i
assoc_addr pod tym samym zamkiem.

Obaj użytkownicy działają w kontekście procesu, więc wystarczy zwykła blokada.
Blokada nie jest utrzymywana w oczekiwaniu na zakończenie.

>_ 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