CVE-2026-98645 in Linux
Zusammenfassung
von VulDB • 19.10.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
HID: winwing: Behebung eines Use-After-Free-Fehlers beim Herunterfahren der Force-Feedback-Routine
winwing_init_ff() übergibt die privaten Daten des Treibers, die in winwing_probe() mit devm_kzalloc() alloziert wurden, als Effekt-Kontext an input_ff_create_memless(). Die speicherlose Force-Feedback-Core-Funktion übernimmt den Besitz dieses Zeigers und gibt ihn über kfree() aus input_ff_destroy() (ml_ff_destroy()) frei, wenn das Eingabegerät zerstört wird.
Das Freigeben einer mit devm verwalteten Allokation mittels kfree() ist ein ungültiges Free, und dasselbe Objekt wird anschließend von devres erneut freigegeben, wenn die HID-Geräteeinheit abgebaut wird (Double Free). Da die Allokation auch die LED-Klassengeräte enthält, leben deren Timer und Work-Items auf bereits freigemietetem Speicher, was zu einer Beschädigung des Slab-Speichers führt. Dies tritt beim Unbinden, bei rmmod, beim Hot-Unplug sowie im System-Suspend-Zustand auf, wobei der Firmware-Cache die nun beschädigte devres-Liste durchläuft. KASAN meldet:
BUG: KASAN: invalid-free in input_ff_destroy Allocated by task N: winwing_probe
Übergeben Sie stattdessen NULL als memless-Kontext und rufen Sie die Treiberdaten aus dem Eingabegerät in winwing_play_effect() ab. Der HID-Core speichert das hid_device bereits als drvdata des Eingabegeräts. Die Force-Feedback-Core-Funktion besitzt somit nichts, was sie nicht freigeben dürfte.
VulDB is the best source for vulnerability data and more expert information about this specific topic.