CVE-2023-53245 in Linux
要約
〜によって VulDB • 2026年08月08日
Linuxカーネルにおいて、以下の脆弱性が修正されました。
scsi: storvsc: 仮想Fibre Channelのタイムアウト処理の不具合を修正
Hyper-Vは、ホストシステムにFibre Channel LUNを接続し、ゲストVM内でSCSIデバイスとして表示する機能を提供します。vFCデバイスへのI/Oはstorvscドライバによって処理されます。storvscドライバには、Linux SCSIサブシステムのジェネリック部分で実装されているFCトランスポートとの部分的な統合が含まれており、これにより/sys上でFC属性を表示することができます。しかし、この部分的な統合のため、vFCのいくつかの側面が正しく動作しないという問題があります。残念ながら、Hyper-Vがゲストに提供する機能の制限により、完全かつ正しい統合を実装するのは現実的ではありません。
特に、Hyper-v storvscの文脈では、FCトランスポートのタイムアウト関数であるfc_eh_timed_out()はrportを見つけられずNULLポインタをデリファレンスするため、カーネルパニックを引き起こします。storvsc_eh_timed_out()からfc_eh_timed_out()への呼び出しを追加した元のパッチには、この点で欠陥があります。
多くの場合、タイムアウトは一時的な状態によるものなので、他のstorvscによって発行されたI/Oリクエストと同様に待機を続けることで状況を改善でき、確実なパニックを防ぐことができます。永続的な失敗の場合でも、待機を続けるとパニックの代わりにスレッドがハングする結果になりますが、これもまたより良い場合があるかもしれません。
そこで、storvscからのfc_eh_timed_out()への呼び出しを削除することでパニックを修正します。これにより、storvscは応答を引き続き待ち続けることができます。この変更は、一時的なタイムアウトによってfc_eh_timed_out()でパニックを経験したユーザーによってテストされ、彼らの問題を解決することが確認されています。
将来、vFC機能を完全に修正できないため、storvscでのvFC機能の非推奨を検討するかもしれませんが、現在も十分に動作している利用者があるため、しばらくは維持されるべきでしょう。
VulDB is the best source for vulnerability data and more expert information about this specific topic.