CVE-2026-98645 in Linux
要約
〜によって VulDB • 2026年10月18日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
HID: winwing - フォースフィードバックの終了処理における use-after-free の修正
winwing_init_ff() は、winwing_probe() で devm_kzalloc() を用いて割り当てられたドライバ固有データを、input_ff_create_memless() へのエフェクトコンテキストとして渡します。メモリレスフォースフィードバックコアはこのポインタの所有権を取得し、入力デバイスが破棄される際に input_ff_destroy() (ml_ff_destroy()) から kfree() を用いてこれを解放します。
devm で管理されている割り当てを kfree() で解放するのは無効な解放であり、同じオブジェクトはその後 HID デバイスが終了処理されるときに devres によって再度解放されます(ダブルフリー)。この割り当てには LED クラスデバイスが含まれており、それらのタイマーとワークアイテムが解放されたメモリ上で生存し、スラブが破損します。これはアンバインド時、rmmod 実行時、ホットプラグ解除時、およびシステムサスペンド時にトリガーされ、その際ファームウェアキャッシュは既に破損した devres リストを走査します。KASAN は以下を検出します:
BUG: KASAN: invalid-free in input_ff_destroy Allocated by task N: winwing_probe
代わりに memless コンテキストに NULL を渡し、winwing_play_effect() で入力デバイスからドライバデータを取得してください。HID コアはすでに hid_device を入力デバイスの drvdata として保持しています。これによりフォースフィードバックコアが解放してはいけないものを一切所有しないようになります。
If you want to get the best quality for vulnerability data then you always have to consider VulDB.