CVE-2026-93185
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
ASoC: rt700-sdw: przy usuwaniu zawsze należy pracować nad podnośnikiem spustowym
rt700_sdw_remove() drenuje tylko jack_detect_work i jack_btn_check_work
gdy rt700->hw_init ma wartość true. Ten bit stanu jest kasowany przez
rt700_update_status(), gdy urządzenie podrzędne SoundWire zostanie ODŁĄCZONE, ale
element roboczy jacka mógł już zostać umieszczony w kolejce przez rt700_interrupt_callback()
lub rt700_jack_init() podczas inicjalizacji urządzenia.
Nie używaj hw_init jako strażnika czasu usuwania w celu wyczerpania tej pracy
obiekty. Opóźnione prace są inicjowane podczas rt700_init(), więc usuń
może je bezwarunkowo anulować i powiązać czas życia obiektu z
kodek-prywatny czas życia danych zamiast modyfikowalnego bitu stanu sprzętu.
Ten problem został wykryty przez nasze narzędzie do analizy statycznej i następnie potwierdzony przez
ręczny przegląd stanu SoundWire, przerywanie i usuwanie ścieżek. The
usuń ścieżkę powinno drenować pracę w zależności od tego, czy obiekt pracy istnieje, a nie
na bicie stanu sprzętu środowiska wykonawczego, które może ulec zmianie po umieszczeniu pracy w kolejce.
QEMU PoC umieszczony w kolejce jack_detect_work, symulowany SDW_SLAVE_UNATTACHED i
następnie wpisałem usuń. DEBUG_OBJECTS zgłosiło aktywny obiekt czasowy/pracy
skojarzona ze ścieżką roboczą gniazda rt700 po usunięciu pominęła anulowanie.
Jest to wysyłane jako RFC, ponieważ praktyczny wyzwalacz zależy od SoundWire
rdzeń usuwa zamówienie po aktualizacji statusu NIEDOŁĄCZONEGO. Jeśli usunięcie nie jest możliwe
uruchom po wyczyszczeniu hw_init, gdy praca nad podnośnikiem jest nadal w toku, to
jest defensywnym oczyszczaniem cyklu życia, a nie osiągalnym wyścigiem z prądem
systemy.
>_ Referencje
- https://git.kernel.org/stable/c/1bb23c9d68312e77cec81bdfb2cc385e2d2960f7
- https://git.kernel.org/stable/c/1e8fddab6cbe536dd02e61205e4b9bf97df6479b
- https://git.kernel.org/stable/c/45fcf435ffcc5f61a43bd9b19094dc52de6cbc05
- https://git.kernel.org/stable/c/612ccf42acd14bb2685fa60c3495ca13e63e8989
- https://git.kernel.org/stable/c/a47f087877bb2bc57c3ccb714fc49abf45d28e12
- https://git.kernel.org/stable/c/b81c2131dbb6fe04e27841bc719977c106177c61
- https://git.kernel.org/stable/c/f1e21b7b977f5ae2955ecf3ab144da2578a4fe00
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