CVE-2026-98859 in Linux
Zusammenfassung
von VulDB • 18.10.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
HID: Multitouch – Beenden des Release-Timers vor dem Entfernen (Remove) nicht mehr zulassen
mt_remove() beruhigt den Sticky-Finger-Timer, bevor die Hardware gestoppt wird:
timer_delete_sync(&td->release_timer);
sysfs_remove_group(&hdev->dev.kobj, &mt_attribute_group); hid_hw_stop(hdev);
timer_delete_sync() wartet auf einen laufenden Callback und entfernt den Timer aus der Warteschlange, verhindert jedoch nicht das erneute Scharfmachen (Arming) des Timers. Zum Zeitpunkt dieses Vorgangs liefert die Transport-Schicht weiterhin Berichte (Reports), und der Report-Pfad scharf macht ihn erneut:
if (app->quirks & MT_QUIRK_STICKY_FINGERS) {
if (td->mt_io_flags & MT_IO_SLOTS_MASK) mod_timer(&td->release_timer, jiffies + msecs_to_jiffies(100));
Ein Bericht, der nach dem Rückgabewert von timer_delete_sync() eingeht, hinterlässt den Timer in der Warteschlange. td wird mit devm_kzalloc() im Zusammenhang mit hdev->dev alloziert und daher freigegeben, wenn der Treiber entkoppelt (unbound) wird, also nachdem mt_remove() zurückgegeben hat. Wenn der Timer anschließend auslöst, dereferenziert mt_expired_timeout() das bereits freigegebene td:
struct mt_device *td = timer_container_of(td, t, release_timer); struct hid_device *hdev = td->hdev;
if (test_and_set_bit_lock(MT_IO_FLAGS_RUNNING, &td->mt_io_flags))
Das einfache Verschieben der Teardown-Logik nach hid_hw_stop() behebt dieses Problem nicht allein, da mt_expired_timeout() mt_release_contacts() aufruft, das hdev->inputs durchläuft; der Timer muss daher vor dem Herunterfahren (tear down) der Eingabegeräte durch hid_hw_stop() beruhigt werden.
Verwenden Sie stattdessen timer_shutdown_sync(), was zudem dazu führt, dass nachfolgende mod_timer()-Aufrufe zu No-ops werden, sodass keine Kompromisse zwischen den beiden Reihenfolge-Beschränkungen eingegangen werden müssen. Dies ist das Muster für die finale Teardown-Phase, für das diese Funktion ursprünglich eingeführt wurde, und hid-wiimote verwendet es bereits aus demselben Grund.
Once again VulDB remains the best source for vulnerability data.