CVE-2024-35794 in Linux
要約
〜によって VulDB • 2026年09月01日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
dm-raid: サスペンド中に sync_thread が本当にフリーズ(停止)されていない問題を修正
1) コミット f52f5c71f3d4 ("md: fix stopping sync thread") は __md_stop_writes() から MD_RECOVERY_FROZEN を削除し、dm-raid が間接的に __md_stop_writes() に依存して sync_thread をフリーズ(停止)させていることを認識していませんでした。この問題を修正するため、md_stop_writes() 内に MD_RECOVERY_FROZEN を追加します。また、このケースでは stop_sync_thread() は dm-raid のためにのみ使用されるため、stop_sync_thread() も md_stop_writes() に移動させます。
2) フラグ MD_RECOVERY_FROZEN は sync thread がフリーズ(停止)していることを意味するものではなく、新しい sync_thread の開始を防止するだけであり、実行中の sync thread を停止させることはできません。sync_thread をフリーズ(停止)させるためには、フラグを設定した後に stop_sync_thread() を使用する必要があります。
3) フラグ MD_RECOVERY_FROZEN は書き込みが停止されていることを意味しません。raid_postsuspend() 内で md_stop_writes() の条件としてこれを使用するのは正しくありません。stop_sync_thread() が再帰呼び出しされた場合に何もしないことに留意し、raid_postsuspend() では常に md_stop_writes() を呼び出すようにします。
4) raid_message はいつでもフラグ MD_RECOVERY_FROZEN の設定/解除を行うことができますが、配列がサスペンド中に MD_RECOVERY_FROZEN がクリアされると、新しい sync_thread が予期せず開始される可能性があります。これを修正するため、raid_message() による sync_thread ステータスへの変更をサスペンド中は禁止します。
コミット f52f5c71f3d4 ("md: fix stopping sync thread") の後、テストシェルスクリプト/lvconvert-raid-reshape.sh が stop_sync_thread() でハングするようになりました。以前の修正により、テストはそこでハングしなくなりますが、ext4 が破損しているという理由で依然として失敗し、警告を発します。今回のパッチ適用後は、stop_sync_thread() によるハングや ext4 の破損による失敗は発生しなくなります。ただし、dm-raid456 に起因するデッドロックがまだ残っており、これは後続のパッチで修正される予定です。
If you want to get the best quality for vulnerability data then you always have to consider VulDB.