VRDA Feed by JPCERT/CC
  Vulnerability Response Decision Assistance Feed : 脆弱性脅威分析用情報の定型データ配信
[ about VRDA Feed | JPCERT/CC



 
分析対象脆弱性情報 (リビジョン番号 : 1) [ Download XML
JVNDB-2026-032015     ( CVE-2026-64437 | CVE-2026-64437 )
LinuxのLinux Kernelにおける解放済みメモリの使用に関する脆弱性
https://jvndb.jvn.jp/ja/contents/2026/JVNDB-2026-032015.html

原文

Linuxカーネルにおいて、以下の脆弱性が修正されました。ksmbdにおけるSMB2_CLOSEの後にSMB2_CANCELが発生した際の遅延されたfile_lockのuse-after-freeの問題です。コミットf580d27e8928(タイトル:「ksmbd: 二重SMB2_CANCEL時の遅延されたfile_lockのuse-after-freeを修正」)では、smb2_cancel()が状態がKSMBD_WORK_CANCELLEDの作業をスキップするように変更され、cancel_fnが二度呼ばれないようにしました。しかし、KSMBD_WORKは3つの状態(ACTIVE、CANCELLED、CLOSED)を持っており、CLOSEDの場合もファイルロックを解放する処理に到達します。SMB2_CLOSEがロックハンドルに対して行われると、set_close_state_blocked_works()が遅延作業の状態をKSMBD_WORK_CLOSEDに設定し、smb2_lock()のワーカーを起こします。ワーカーは非ACTIVEの状態で早期に終了し、locks_free_lock()でfile_lockを解放します。そして状態がKSMBD_WORK_CANCELLEDではないため、STATUS_RANGE_NOT_LOCKEDの分岐を取り、「goto out2」で終了します。この分岐はキャンセルされた場合と同様にrelease_async_work()をスキップします。このため、作業はconn->async_requestsに残り、解放されたfile_lockを指す有効なcancel_fn = smb2_remove_blocked_lockが設定されたままになります。その後、同じAsyncIdに対するSMB2_CANCELはKSMBD_WORK_CANCELLEDの状態のみをガードしています(状態はKSMBD_WORK_CLOSEDのため通過します)。そのため、smb2_cancel()は解放済みのfile_lockに対して再びcancel_fnを呼び出し、SMB2_CLOSEによって修正されたのと同じ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 <- 2回目のSMB2_CANCELでcancel_fnが発火 handle_ksmbd_work 割り当て元は locks_alloc_lock <- smb2_lock であり、解放元は locks_free_lock <- smb2_lock(非ACTIVEの早期終了)です。対象は file_lock_cache(サイズ192)です。この問題はf580d27e8928を含むmainline 7.1-rc7で、KASANを有効にした認証済みSMBクライアントにて再現されました。二重のSMB2_CANCEL制御はすでにそのカーネルでは無効化されており、問題の原因はCLOSEトリガーにあります。cancel_fnが起動できるのはACTIVE状態の遅延作業のみであり、終端状態であるCANCELLEDおよびCLOSEDはsmb2_lock()の早期終了でfile_lockを解放し、release_async_work()をスキップします。したがって、非ACTIVEの作業はKSMBD_WORK_ACTIVEでガードし、スキップする必要があります。

翻訳   (表示)





この情報について
分析情報提供元:
JVN iPedia
初版公開日:
2026-09-04
分析対象脆弱性情報の分類:
アドバイザリ・注意喚起
最終更新日:
2026-09-04




脆弱性の影響を受ける製品の識別子
cpe:/o:linux:linux_kernel
 


脆弱性の分析内容
[攻撃元区分]  [?]
未評価 [?]

ローカル [?]
隣接 [?]
ネットワーク [?]

[攻撃条件の複雑さ]  [?]
未評価 [?]

 [?]
 [?]
 [?]

[攻撃前の認証要否]  [?]
未評価 [?]

複数 [?]
単一 [?]
不要 [?]

[機密性への影響]  [?]
未評価 [?]

影響なし [?]
部分的 [?]
全面的 [?]

[完全性への影響]  [?]
未評価 [?]

影響なし [?]
部分的 [?]
全面的 [?]

[可用性への影響]  [?]
未評価 [?]

影響なし [?]
部分的 [?]
全面的 [?]

関連情報
Common Vulnerabilities and Exposures (CVE) CVE-2026-64437




National Vulnerability Database (NVD) CVE-2026-64437








参考情報
JVNDB CWE-416 解放済みメモリの使用




関連文書 ksmbd: fix use-after-free of a deferred file_lock on SMB2_CLOSE then SMB2_CANCEL - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/b8e274e69ab09222c7a552c7c0c1eef9ce627fc1)




関連文書 ksmbd: fix use-after-free of a deferred file_lock on SMB2_CLOSE then SMB2_CANCEL - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/94083db751930b1540ddff2b54d4677549c57f81)




関連文書 ksmbd: fix use-after-free of a deferred file_lock on SMB2_CLOSE then SMB2_CANCEL - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/a796ba4e61d5e14e07b79a359faac69f8f9b22a3)




関連文書 ksmbd: fix use-after-free of a deferred file_lock on SMB2_CLOSE then SMB2_CANCEL - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/10f293a07f9e10e988b0ae44e2e99c631f5a68e0)




関連文書 ksmbd: fix use-after-free of a deferred file_lock on SMB2_CLOSE then SMB2_CANCEL - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/ddb9239828336b36d8a3ef5943fdffb2f55b6508)




関連文書 ksmbd: fix use-after-free of a deferred file_lock on SMB2_CLOSE then SMB2_CANCEL - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/12c36c99655f325befe50c26842f7deca414c381)





Copyright © 2026 JPCERT/CC All Rights Reserved.