JVNDB-2026-032019 | |
LinuxのLinux Kernelにおける解放済みメモリの使用に関する脆弱性 | |
| 概要 | |
Linuxカーネルにおいて、以下の脆弱性が修正されました。Bluetooth: MGMT: add_device_complete内のhci_conn_paramsのUse-After-Free (UAF)の修正。add_device_complete()はhci_cmd_sync_workのkworkerから実行されますが、hci_req_sync_lockのみを保持しており、hci_dev_lockは保持していません。関数内でhci_conn_params_lookup()を呼び出し、その戻り値であるオブジェクト(params->flags)を、hci_dev_lockを取得せずに参照しています。 params = hci_conn_params_lookup(hdev, &cp->addr.bdaddr, le_addr_type(cp->addr.type)); ... device_flags_changed(NULL, hdev, &cp->addr.bdaddr, cp->addr.type, hdev->conn_flags, params ? params->flags : 0);hci_conn_params_lookup()はhdev->le_conn_paramsを走査し、hdev->lockの取得が必要であるとドキュメントに記載されています。一方で、MGMT_OP_REMOVE_DEVICE(remove_device())はhci_dev_lockを保持して実行され、hci_conn_params_free()を呼び出してhci_conn_params_lookup()が返したオブジェクトをlist_del()とkfree()により解放してしまう可能性があります。そのため、その後のparams->flagsへのアクセスは解放済みメモリを参照することとなり、Use-After-Freeが発生します[0]。この問題を防ぐため、hci_conn_params_lookup()呼び出しからparams->flagsの読み取り(およびそれに対応するイベント送信)までの間は、hci_dev_lockを保持するようにしました。これにより、hci_conn_params_lookup()のロック契約を遵守し、lookup結果が同時に実行されるremove_device()によって解放されることを防止します。[0]:(後続のページおよびメモリ状態ダンプは省略)BUG: KASAN: slab-use-after-free in add_device_complete+0x358/0x3d8 net/bluetooth/mgmt.c:7671Read of size 1 at addr ffff000017ab26c1 by task kworker/u9:8/388(以下、省略されている詳細なスタックトレースおよび割り当て・解放情報が続きます) | |
| CVSS による深刻度 (CVSS とは?) | |
|
CVSS v3 による深刻度
基本値: 7.8 (重要) [NVD値]
| |
| 影響を受けるシステム | |
|
| |
Linux | |
|
| |
| 想定される影響 | |
・当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 | |
| 対策 | |
リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
|
| |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/07/25 |
| 登録日 | 2026/09/04 |
| 最終更新日 | 2026/09/04 |



