【活用ガイド】

JVNDB-2026-032205

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

概要

Linuxカーネルにおいて、以下の脆弱性が修正されました:HID: letsketchドライバーのunbind時に発生するinrange_timerのUse-After-Free (UAF)問題の修正です。letsketch_driverは.removeコールバックを提供していませんが、letsketch_probe()関数はデバイスごとにタイマーを設定しています。timer_setup(&data->inrange_timer, letsketch_inrange_timeout, 0);このタイマーはペンが検出されるたびにletsketch_raw_event()から100ミリ秒のタイムアウトで再設定され、そのコールバックはdata->input_tabletをデリファレンスし、合成のBTN_TOOL_PENリリースを送信します。letsketch_dataはdevm_kzalloc()で割り当てられており、input_devのフィールドもletsketch_setup_input_tablet()を通じてdevmで割り当てられています。デバイスのunbind(USBの抜去やrmmod)時には、HIDコアがデフォルトの解放処理とdevmのクリーンアップを実行し、letsketch_dataとinputデバイスの両方を解放します。しかし、.removeコールバックが存在しないため、タイマーのキャンセルは行われません。もしraw_eventがunbindから約100ms以内にタイマーを設定していた場合、この保留中のタイマーが解放済みメモリ上で起動し、dataおよびdata->input_tabletのUse-After-Free読み込みが発生し、その後input_report_key()やinput_sync()が解放済みのinput_devに対して処理を行ってしまいます。同様の問題はprobeエラーパスでも発生する可能性があります。hid_hw_start()が常時ポーリングを行うイレギュラーなデバイスでI/Oを有効化し、その後失敗した場合、raw_eventがデータ解放前にタイマーを設定していることがあります。修正内容は.removeコールバックを追加し、まずhid_hw_stop()を呼び出すことです。hid_hw_stop()はraw_event()を送出するURBを同期的に停止するため、戻ると以降タイマーを再設定する経路は存在しません。次にtimer_shutdown_sync()を呼び出し、実行中のコールバックを完了させ、以降のmod_timer()呼び出しを永久に無効化します。同様に、probeエラーパスにもtimer_shutdown_sync()を適用し、タイマーがdataよりも長く生存しないことを保証します。
CVSS による深刻度 (CVSS とは?)

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


Linux
  • Linux Kernel 5.17 以上 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.96 未満
  • Linux Kernel 7.2

想定される影響

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

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

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

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

  1. CVE-2026-64365
参考情報

  1. National Vulnerability Database (NVD) : CVE-2026-64365
  2. 関連文書 : HID: letsketch: fix UAF on inrange_timer at driver unbind - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/2bb6e7143cf70ed281822d26c1848b2897ac36e9)
  3. 関連文書 : HID: letsketch: fix UAF on inrange_timer at driver unbind - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/523db788c0f84612707638e266e8957ca7e3a756)
  4. 関連文書 : HID: letsketch: fix UAF on inrange_timer at driver unbind - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/3eca1a8165b5e7996e699e9df76cb4645e184d42)
  5. 関連文書 : HID: letsketch: fix UAF on inrange_timer at driver unbind - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/46c8beeccd8ab2c863827254a85ea877654a3534)
  6. 関連文書 : HID: letsketch: fix UAF on inrange_timer at driver unbind - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/17f5928d7010bc9e002930326b59e60e40c09ee3)
  7. 関連文書 : HID: letsketch: fix UAF on inrange_timer at driver unbind - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/df3d8aa1a9392da3de66398e7a03422463806b21)
更新履歴

  • [2026年09月07日]
      掲載