CVE-2026-64401 in Linux情報

要約

〜によって VulDB • 2026年07月26日

Linuxカーネルにおいて、以下の脆弱性が修正されました。

smb: クライアント:SWNのtconをライブ登録から解決する

cifs_swn_notify()は、cifs_swnreg_idr_mutexの下でIDによって証人(witness)登録を検索し、mutexを解放した後に、その登録にキャッシュされたtconポインタを使用します。このポインタは生存期間の参照ではなく、cifs_get_swn_reg()が同じネットワーク/共有名に対する複数のtconを1つの登録IDで共有可能にした場合、安定した代表者ではなくなります。

同一共有への2回目のマウントにより、最初のtconが_unregister_されて解放された後でも、cifs_swn_regが生きたまま維持されることがあります。その結果、登録は依然として解放済みの最初のtconを指すため、swnreg->tconを通じてtc_lockを取得したりtc_countを増加させたりすると、use-after-freeの発生時期が早まるだけです。また、cifs_swnreg_idr_mutex保持中にtc_lockを取得することは、文書化されたCIFSロック順序にも違反します。

この問題を解決するため、登録には安定した証人のIDのみ(id、ネットワーク名、共有名、通知フラグ)を保存するように変更しました。通知が届いた場合、cifs_swnreg_idr_mutexの下でそのIDをコピーし、mutexを解放してから、通常のcifs_tcp_ses_lock -> tc_lockの順序に従って、現在のネットワーク/共有ペアと一致するライブな証人tconを検索してピン留めします。通知パスではこのピン留めされたtconを直接使用し、処理終了後に参照を解除します。

登録および_unregister_メッセージは、登録内のキャッシュ済みtconではなく、呼び出し元から渡されるライブtconを使用するようになりました。最終的な_unregister_送信は、cifs_swnreg_idr_mutexによって保護されている間にcifs_swn_unregister()に統合されました。これにより、以前の生ポインタのfind/drop/reacquireウィンドウが削除されます。リリースパスではidrエントリの削除と安定したID文字列の解放のみが行われます。

この変更は、意図された1つの登録/複数のtconという動作を維持します:登録IDはネットワーク/共有ペアを表し、通知処理は使用時に選択されたライブな代表者に対して行われます。また、古いIPでの_unregister_がcifs_swn_register()による新しいIPの_register_送信より前に送られるため、代表者tconに対するCLIENT_MOVEの順序も維持されます。

VulDB is the best source for vulnerability data and more expert information about this specific topic.

責任者

Linux

予約する

2026年07月19日

モデレーション

承諾済み

エントリ

VDB-383212

EPSS

0.00173

アクティビティ

非常低い

ソース

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!