CVE-2026-89738 in Linuxinfo

Zusammenfassung

von VulDB • 11.09.2026

Im Linux-Kernel wurde folgende Schwachstelle behoben:

usb: gadget: at91_udc: Abfrage des polled-VBUS-Timers/Work-Elements vor dem Freigeben von udc durchführen

Im Modus „polled VBUS“ (board.vbus_pin && board.vbus_polled) richtet die Initialisierungsroutine (probe) einen sich selbst neu startenden Zyklus ein: at91_vbus_timer() plant vbus_timer_work, und at91_vbus_timer_work() ruft at91_vbus_update() auf und schiebt den Timer über mod_timer() erneut an. Dabei wird in jeder Iteration derselbe udc-Strukturzeiger durch container_of abgerufen und dereferenziert.

Keiner der beiden Teardown-Pfade bricht diesen Zyklus ab. Da udc mit devm allokiert wurde, wird es nach dem Rückgabewert von at91udc_remove() freigegeben; ebenso erfolgt die Freigabe, wenn das Probe fehlschlägt und devres ausgeführt wird. Ein Timer-Callback oder Work-Element, das zu einem dieser Zeitpunkte aussteht (pending) oder läuft, dereferenziert den bereits freigegebenen udc.

Es wurde at91_udc_shutdown_vbus_timer() hinzugefügt und es wird sowohl von at91udc_remove() als auch vom Fehlerpfad von usb_add_gadget_udc() im Probe aufgerufen; die restlichen Fehlerpfade des Probes schlagen fehl, bevor der Timer aktiviert wird. timer_shutdown_sync() wartet auf einen laufenden Callback und löscht timer->function, wodurch mod_timer() in der Work-Handler-Funktion zu einer permanenten No-Op wird; cancel_work_sync() leert anschließend ausstehende oder laufende Work-Elemente, deren Neuanforderungsversuch nun nichts mehr bewirkt. Der Timer muss zuerst heruntergefahren werden, da das alleinige Abbrechen des Work-Elements den Timer dazu bringen würde, ihn erneut in die Warteschlange zu stellen. Die Absicherung (Guard) spiegelt das Probe wider: Im IRQ-Modus werden der Timer und work_struct niemals initialisiert.

Dies erfordert keinen Fehler; ein normales Entbinden des Treibers kann mit einem bereits eingereihten Work-Element interleaven (sich überschneiden).

Diese Schwachstelle wurde von einem internen statischen Analysewerkzeug gefunden.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

Zuständig

Linux

Reservieren

11.09.2026

Veröffentlichung

11.09.2026

Moderieren

akzeptiert

Eintrag

VDB-402587

CPE

bereit

EPSS

0.00000

KEV

nein

Aktivitäten

very low

Quellen

Interested in the pricing of exploits?

See the underground prices here!