JVNDB-2026-022478 | |
LinuxのLinux Kernelにおける解放済みメモリの使用に関する脆弱性 | |
| 概要 | |
Linuxカーネルにおいて、以下の脆弱性が修正されました:ksmbd: 二重の SMB2_CANCEL により延期された file_lock が解放後に使用される問題(use-after-free)を修正延期されたバイト範囲ロック(ブロックする SMB2_LOCK)は、setup_async_work() により conn->async_requests 上に非同期ワークを登録し、cancel_fn として smb2_remove_blocked_lock を設定し、cancel_argv[0] は struct file_lock を指します。要求がキャンセルされると、ワーカーは locks_free_lock() で file_lock を解放し、キャンセル済みの早期終了経路を取り、"goto out" して release_async_work() には到達しません。release_async_work() は、conn->async_requests からワークをアンリンクし、cancel_fn/cancel_argv をクリアする唯一の場所です。そのため、接続の破棄で最終的に release_async_work() が走るまで、当該ワークは async_requests 上でマッチ可能なまま残り、解放済みの file_lock を指す cancel_fn が生き続けます。smb2_cancel() は状態ガードなしに無条件で cancel_fn を起動するため、同一 AsyncId に対する2回目の SMB2_CANCEL がその時間窓に到着すると、解放済みの file_lock に対して smb2_remove_blocked_lock() が再実行され、slab use-after-free が発生します: BUG: KASAN: slab-use-after-free in __locks_delete_block __locks_delete_block locks_delete_block ksmbd_vfs_posix_lock_unblock smb2_remove_blocked_lock smb2_cancel <- 2nd SMB2_CANCEL fires cancel_fn handle_ksmbd_work Allocated by ...: locks_alloc_lock <- smb2_lock Freed by ...: locks_free_lock <- smb2_lock (cancelled branch) ... cache file_lock_cache of size 192この問題は、認証済みの SMB クライアントにより、メインライン上で KASAN を用いて再現されました。ワークの状態がすでに KSMBD_WORK_CANCELLED である場合はそれをスキップし、キャンセル用コールバックが二度目に起動されないようにします。 | |
| CVSS による深刻度 (CVSS とは?) | |
|
CVSS v3 による深刻度
基本値: 8.8 (重要) [その他]
| |
| 影響を受けるシステム | |
|
| |
Linux | |
|
| |
| 想定される影響 | |
・当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 | |
| 対策 | |
リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
|
| |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/06/25 |
| 登録日 | 2026/07/07 |
| 最終更新日 | 2026/07/07 |



