CVE-2026-99091
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
Bluetooth: MGMT: Napraw status oczekujących poleceń wyświetlanych po wyłączeniu zasilania
cmd_complete_rsp() odbiera strukturę cmd_lookup i w przypadku oczekującego
polecenie, które nie ma wywołania zwrotnego cmd_complete, przechodzi do
cmd_status_rsp(cmd, dane). cmd_status_rsp() odczytuje dane jako u8 *, więc
wysłany status pochodzi z pierwszego bajtu match->sk
reprezentację, a nie z dopasowania->mgmt_status.
commit f53e1c9c726d („Bluetooth: MGMT: Napraw możliwą awarię wł
mgmt_index_removed”) zmienił dane dzwoniących z &status na &match
i zaktualizowałem gałąź cmd_complete, aby dopasować->mgmt_status, ale zostawiłem
dane przekazywane przez spadek niezmienione.
W mgmt_index_removed() match->sk ma wartość NULL, więc każde takie polecenie ma wartość NULL
odpowiedział statusem 0x00 (Sukces) zamiast
MGMT_STATUS_INVALID_INDEX. W __mgmt_power_off() również ma wartość NULL,
chyba że oczekiwało polecenie Set Powered: wówczas istnieje polecenie settings_rsp().
zapisał gniazdo tego polecenia w match->sk i nadszedł wysłany bajt
ze wskaźnika gniazda. Tak czy inaczej status ustawiony przez dzwoniącego,
MGMT_STATUS_NOT_POWERED (lub MGMT_STATUS_INVALID_INDEX, gdy urządzenie
jest niezarejestrowany), zostaje utracony.
Przekaż status ustawiony przez rozmówców.
Zaobserwowano to na laptopie QCA9377: Start Discovery firmy Bluetoothd,
w oczekiwaniu na wyłączenie zasilacza, otrzymano odpowiedź z poleceniem
Status 0x00 i brak parametrów, a bluetoothd 5.72 uległ awarii
sukces o zerowej długości. Od tego czasu mistrz BlueZ dodał kontrolę długości
na tej ścieżce („adapter: Napraw awarię przy odpowiedzi na wykrycie krótkiego startu”,
BlueZ a734b06059cb), ale w przestrzeni użytkownika nadal powinien znajdować się komunikat Brak zasilania,
nie Sukces.
Testowane na Ubuntu 7.0.0-31 z kontrolerem wirtualnym (hci_vhci):
wyłączenie zasilania jest utrzymywane w trybie skanowania zapisu HCI, podczas gdy włączone jest wykrywanie początkowe
przesłane, a kolor odpowiada na nie ze statusem 0x00 wcześniej
zmień i 0x0f (brak zasilania) po.
>_ Referencje
- https://git.kernel.org/stable/c/07976405a3c71253e50533ee7b7a8b0dc16ab6ba
- https://git.kernel.org/stable/c/44ce36c5789ac84e65de1e98c32db9a5ac04ed47
- https://git.kernel.org/stable/c/7ed7e038b520cf0dfa12d61c2caddb95e2f6922d
- https://git.kernel.org/stable/c/86ef0f58bdecdedb3a1240971c56d71b7e4ce3fc
- https://git.kernel.org/stable/c/ec227cddd13cd7ac9077d263a73473ac370a055d
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