Odebrany

CVE-2026-89624

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ę:

HID: universal-pidff: zatrzymaj urządzenie w przypadku niepowodzenia inicjalizacji z wymuszonym sprzężeniem zwrotnym

universal_pidff_probe() uruchamia urządzenie za pomocą funkcji hid_hw_start(), a następnie if
inicjalizacja z wymuszonym sprzężeniem zwrotnym nie powiedzie się, zwraca błąd poprzez etykietę that
robi tylko „błąd zwrotu”. Urządzenie pozostaje uruchomione.

Rdzeń HID nie rozwija się w imieniu kierowcy. __hid_device_probe()
zwalnia grupę devres, zamyka raport i czyści hdev->driver:

jeśli (ret) {
devres_release_group(&hdev->dev, hdev->devres_group_id);
hid_close_report(hdev);
hdev->sterownik = NULL;
}

Urządzenie znakowe hidraw, przez które zarejestrowała się funkcja hid_hw_start().
funkcja hid_connect() jest przydzielana za pomocą kzalloc() i dodawana za pomocą cdev_device_add(),
więc nie jest zarządzany przez Devres i przetrwa to. Z hdev->sterownikiem NULL,
hid_device_remove() również pomija funkcję hid_hw_stop(), ponieważ powoduje ona jedynie odwinięcie
gdy sterownik jest nadal podłączony. Rejestracja zatem przeżywa
urządzenie na obu ścieżkach.

Otwarcie pozostałego pliku /dev/hidrawX powoduje zapis w zwolnionej pamięci. Raport KASAN
zapis dotyczący użycia po zwolnieniu z hidraw_open() -> hid_hw_open() -> the
otwarte wywołanie zwrotne transportu, które pobiera blokadę wewnątrz uwolnionego obiektu.
Wystarczy deskryptor, który zawiera stronę użycia PID i nie zawiera raportów wejściowych:
hidraw przejmuje urządzenie, więc funkcja hid_hw_start() powiedzie się, podczas gdy hid->input
pozostaje pusty, więc inicjacja z wymuszonym sprzężeniem zwrotnym kończy się niepowodzeniem. Kolejna porażka powraca
hid_pidff_init_with_quirks() - brak raportów wyjściowych, błąd alokacji,
pidff_init_fields(), pidff_check_autocenter(), liczba efektów, których nie można użyć,
input_ff_create() - wszystkie osiągają tę samą etykietę.

Zatrzymaj urządzenie na tej ścieżce. hid-dr.c i hid-emsff.c, które uruchamiają plik
urządzenie z tą samą maską HID_CONNECT_DEFAULT i ~HID_CONNECT_FF, już tak
to. Dwa wcześniejsze goto muszą powracać bez funkcji hid_hw_stop(),
ponieważ żadne z nich nie ma uruchomionego urządzenia, więc podaj ścieżkę, która kończy się niepowodzeniem po
rozpocząć własną wytwórnię.

Odkryte przez XBOW, sprawdzone przez Baula Lee <[email protected]>

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