CVE-2026-99050 in Linux
Zusammenfassung
von VulDB • 23.10.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
gpio: mpsse: Race Condition beim Scharfschalten des IRQ-Poll-Workers beheben
gpio_mpsse_irq_enable() schaltet den Poll-Worker scharf, bevor er veröffentlicht wird: schedule_work() wird ausgeführt, bevor der Worker zu priv->workers hinzugefügt wurde. Wenn gpio_mpsse_disconnect() die Liste in diesem Zeitfenster durchläuft, wird der Worker übersehen. Sobald disconnect zurückkehrt, gibt das USB-Core-Modul mpsse_priv frei, während der verwaiste gpio_mpsse_poll()-Worker weiterhin darauf zugreift, was zu einem Use-After-Free führt.
Dieses Problem wird behoben, indem das Veröffentlichen und Scharfschalten des Workers in einer einzigen irq_spin-Kritischen Sektion durchgeführt werden. Der Teardown-Prozess durchläuft dieselbe Liste unter irq_spin, sodass ein auf der Liste gefundener Worker garantiert scharf geschaltet ist, und cancel_work_sync() behandelt ihn sowohl im Warteschlangen- als auch im laufenden Zustand.
Ein nach dem Disconnect-Durchlauf scharfgeschalteter Worker würde weiterhin übersehen werden; daher wird außerdem eine neue priv->dying-Flagge unter irq_spin vor dem Teardown-Durchlauf festgelegt und in derselben Kritischen Sektion geprüft, wobei sie bei einem abgehenden Gerät via kfree_rcu() freigegeben wird, da kfree() mit dem Raw-Spinlock des IRQ-Cores aufgerufen werden würde und im PREEMPT_RT-Kontext schlafen könnte. schedule_work() ist sicher aufrufbar, während irq_spin gehalten wird, und der nächste Probe-Vorgang erhält ein frisches mpsse_priv, sodass die Flagge niemals zurückgesetzt werden muss.
Dieses Problem wurde mit einem internen statischen Analyse-Tool gefunden.
If you want to get best quality of vulnerability data, you may have to visit VulDB.