Katalog CVE

CVE-2026-89465

WysokieCVSS 8.4
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.14%

Percentyl 4 - wyżej niż 4% wszystkich znanych CVE

Streszczenie

W jądrze Linux w sterowniku ładowarki rt9455 występuje błąd use-after-free. Podczas usuwania sterownika (rt9455_remove) kolejność anulowania zadań opóźnionych jest nieprawidłowa — batt_presence_work może zakolejkować max_charging_time_work po jego anulowaniu, co prowadzi do odwołania się do zwolnionej struktury rt9455_info. Problem występuje również w ścieżce błędu funkcji probe, gdy rt9455_hw_init() zawiedzie po zarejestrowaniu przerwania.

Ocena ryzyka

Może prowadzić do uszkodzenia pamięci jądra, awarii systemu (panic) lub potencjalnego wykorzystania do eskalacji uprawnień przez lokalnego atakującego. Ryzyko dotyczy systemów z ładowarką rt9455 i możliwością wywołania operacji usunięcia sterownika lub błędu inicjalizacji.

Rekomendacja

Zaktualizować jądro Linux do wersji zawierającej poprawkę, która rejestruje rt9455_cancel_all_delayed_works() przez devm_add_action_or_reset() i anuluje zadania w prawidłowej kolejności. Do czasu aktualizacji ograniczyć możliwość ładowania/usuwania modułu sterownika rt9455 przez nieuprzywilejowanych użytkowników.

Inne podatności w Linux kernel

Zobacz wszystkie
Oryginalny opis (angielski, źródło NVD)

In the Linux kernel, the following vulnerability has been resolved: power: supply: rt9455: quiesce delayed work before teardown The threaded IRQ handler can queue pwr_rdy_work, max_charging_time_work and batt_presence_work. pwr_rdy_work and batt_presence_work can also queue max_charging_time_work, while batt_presence_work can requeue itself. rt9455_remove() cancels max_charging_time_work before batt_presence_work. The latter can therefore queue max_charging_time_work after it has already been cancelled: rt9455_remove() workqueue cancel pwr_rdy_work cancel max_charging_time_work batt_presence_work queues max_charging_time_work cancel batt_presence_work return devres frees rt9455_info max_charging_time_work dereferences rt9455_info The IRQ also remains registered until devres cleanup and can queue more work after any of the cancellation calls. If rt9455_hw_init() fails after the IRQ has been requested, probe returns without cancelling work that may already have been queued. A pending callback can then access rt9455_info after it has been freed. Register rt9455_cancel_all_delayed_works() through devm_add_action_or_reset() right after devm_power_supply_register(). devres invokes the action in reverse registration order, after the managed IRQ has been freed and before rt9455_info is released, so the delayed works are drained in both rt9455_remove() and the probe error path. Cancel pwr_rdy_work and batt_presence_work before max_charging_time_work because both can queue the latter. This issue was found by an in-house static analysis tool.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS