【活用ガイド】

JVNDB-2026-032206

LinuxのLinux Kernelにおける解放済みメモリの使用に関する脆弱性

概要

Linuxカーネルにおいて、以下の脆弱性が修正されました。HID: appleirのremove()内にある保留中のkey_up_timerに関するUse-After-Free(UAF)を修正しました。appleir_remove()はtimer_delete_sync()の前にhid_hw_stop()を実行します。hid_hw_stop()はhid_disconnect() -> hidinput_disconnect() -> input_unregister_device()を介してHID入力デバイスの登録を同期的に解除し、ユーザースペースからのハンドルが開かれていなければ最後の参照を離して基底のinput_devを解放します。key_up_tick()はappleir->input_devを読み取り、その上でinput_report_key()およびinput_sync()を呼び出します。このタイマーはappleir_raw_event()から、各キー押下およびキーリピートの報告時にHZ/8(約125ms)のタイムアウトでセットされます。デバイス切断直前にキーが押された場合、タイマーがhid_hw_stop()がinput_devを解放した後、しかしteardownが完了する前に発火する可能性があります。単純な処理の順序変更だけでは不十分です。タイマーの処理を先に行っても、hid_hw_stop()の実行中にUSB URB完了(raw_event)がmod_timer()を呼び出してタイマーを再設定し、次にhidinput_disconnect()がinput_devを解放した後にタイマーが発火するウィンドウが残ります。同じURB完了のタイミングでraw_event()がkey_up()、key_down()、battery_flat()に直接到達することも可能であり、これらはすべてappleir->input_devを参照します。struct appleirに既存のスピンロックで保護される'removing'フラグを導入しました。appleir_remove()はフラグをロック下でセットし、その後timer_shutdown_sync()でタイマーを停止します。これにより、実行中のコールバックをすべて消化し、さらにmod_timer()の呼び出しを永久に無効化できます。appleir_raw_event()とkey_up_tick()はこのフラグがセットされている場合は早期に処理を中断し、remove()による解除が始まった後にタイマーがセットまたは実行されたり、appleir->input_devが参照されたりする経路をなくします。appleir_raw_event()のkeyrepeatおよびflatbatteryの分岐は、以前はスピンロックを保持せずに入力層を呼んでいましたが、フラグチェックを適切に行うために今回スピンロックを取得するように変更しました。これにより、keyrepeat分岐のappleir->current_keyの読み取り側の競合も偶然修正されました。このバグはコミット4db2af929279("HID: appletb-kbd: 不活性タイマーのクリーンアップ経路におけるUAFの修正")と構造的に類似しており、ドライバが導入された時点から存在していました。
CVSS による深刻度 (CVSS とは?)

CVSS v3 による深刻度
基本値: 7.8 (重要) [NVD値]
  • 攻撃元区分: ローカル
  • 攻撃条件の複雑さ: 低
  • 攻撃に必要な特権レベル: 低
  • 利用者の関与: 不要
  • 影響の想定範囲: 変更なし
  • 機密性への影響(C): 高
  • 完全性への影響(I): 高
  • 可用性への影響(A): 高
影響を受けるシステム


Linux
  • Linux Kernel 3.10 以上 5.10.261 未満
  • Linux Kernel 5.11 以上 5.15.212 未満
  • Linux Kernel 5.16 以上 6.1.178 未満
  • Linux Kernel 6.13 以上 6.18.39 未満
  • Linux Kernel 6.19 以上 7.1.4 未満
  • Linux Kernel 6.2 以上 6.6.145 未満
  • Linux Kernel 6.7 以上 6.12.97 未満
  • Linux Kernel 7.2

想定される影響

・当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。
・当該ソフトウェアが扱う全ての情報が書き換えられる可能性があります。
・当該ソフトウェアが完全に停止する可能性があります。
対策

リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。
ベンダ情報

CWEによる脆弱性タイプ一覧  CWEとは?

  1. 解放済みメモリの使用(CWE-416) [NVD評価]
共通脆弱性識別子(CVE)  CVEとは?

  1. CVE-2026-64363
参考情報

  1. National Vulnerability Database (NVD) : CVE-2026-64363
  2. 関連文書 : HID: appleir: fix UAF on pending key_up_timer in remove() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/b363d964ca829c1761c9f04188dfa28f90b0f2d4)
  3. 関連文書 : HID: appleir: fix UAF on pending key_up_timer in remove() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/3755f6e25776b8b12ddf062f9b573f05090e4034)
  4. 関連文書 : HID: appleir: fix UAF on pending key_up_timer in remove() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/6b0838e86da88b1d3bff86f19761ff25af73eaca)
  5. 関連文書 : HID: appleir: fix UAF on pending key_up_timer in remove() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/37a52c61d4f78153c38ae1f7491dfcc8ac828dcf)
  6. 関連文書 : HID: appleir: fix UAF on pending key_up_timer in remove() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/3d30a0bb0e79621ae921b487835c56198adfafa3)
  7. 関連文書 : HID: appleir: fix UAF on pending key_up_timer in remove() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/05e3decc55d1deca9410e0eb36466651fcbe57a5)
  8. 関連文書 : HID: appleir: fix UAF on pending key_up_timer in remove() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/75fe87e19d8aff81eb2c64d15d244ab8da4de945)
  9. 関連文書 : HID: appleir: fix UAF on pending key_up_timer in remove() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/89ef67359672bf4cd6921524e39f61648fe38c0f)
更新履歴

  • [2026年09月07日]
      掲載