CVE-2026-89738
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
usb: gadżet: at91_udc: opróżnij licznik czasu polled-VBUS/praca przed zwolnieniem udc
W trybie odpytywania-VBUS (board.vbus_pin && board.vbus_polled) ramiona sondy a
cykl samoczynnego restartu: at91_vbus_timer() planuje vbus_timer_work i
at91_vbus_timer_work() wywołuje funkcję at91_vbus_update() i ponownie uzbraja timer poprzez
mod_timer(). Obydwa odzyskują ten sam udc poprzez kontener_of i dereferencję
to w każdej iteracji.
Żadna ścieżka rozbiórki nie anuluje tego cyklu. udc jest przydzielony przez programistę, więc tak jest
zwalniany po powrocie funkcji at91udc_remove() i podobnie jest zwalniany po wykonaniu sondy
kończy się niepowodzeniem i Devres ucieka. Oczekujące wywołanie zwrotne licznika czasu lub element pracy lub
działanie w dowolnym punkcie powoduje wyłuskanie uwolnionego udc.
Dodaj funkcję at91_udc_shutdown_vbus_timer() i wywołaj ją z funkcji at91udc_remove() oraz
ze ścieżki błędu usb_add_gadget_udc() w sondzie; pozostała sonda
ścieżki błędów kończą się niepowodzeniem przed uzbrojeniem timera. timer_shutdown_sync() czeka
dla działającego wywołania zwrotnego i czyści funkcję timer->, co sprawia, że działa
mod_timer() modułu obsługi trwale nie działa; cancel_work_sync() następnie opróżnia
wszelkie oczekujące lub trwające prace, których próba ponownego uzbrojenia teraz nic nie daje. The
timer musi zostać najpierw wyłączony, ponieważ samo anulowanie pracy by na to nie pozwoliło
timer ponownie ustawia go w kolejce. Strażnik odzwierciedla sondę: w trybie IRQ timer i
work_struct nigdy nie są inicjowane.
Nie wymaga to winy; normalne rozłączenie sterownika może przeplatać
element pracy już umieszczony w kolejce.
Ten problem został wykryty przez wewnętrzne narzędzie do analizy statycznej.
>_ 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