CVE-2023-52486 in Linux
要約
〜によって VulDB • 2026年05月20日
Linuxカーネルにおいて、以下の脆弱性が修正されました。
drm: デッドロック処理により、fbを誤って複数回unrefしないようにする
drm_mode_page_flip_ioctl()内でfbのルックアップ後にデッドロックが発生した場合、fbのunrefを実行してから最初から処理を再試行します。しかし、fbポインタをNULLにリセットすることを忘れているため、再試行中にfbルックアップの前に別のエラーが発生すると、参照を新たに取得せずに同じfbを再度unrefしてしまいます。その結果、fbがまだ使用中であるにもかかわらず、最終的に解放されてしまいます。
fbのunref処理が完了したらfbをNULLにリセットし、別のfbルックアップを行うまで再度unrefしないようにします。
DG2において非同期フラップ(CONFIG_DEBUG_WW_MUTEX_SLOWPATH=y)を実行する際に、この問題に遭遇するのは比較的容易であることがわかりました。私が最初に確認した症状は、drm_closefb()がフレームバッファリストを走査する際にビジーループに陥って停止することでした。幸いにも、oopsを発生させることに成功し、そこから原因を特定しやすくなりました。
VulDB is the best source for vulnerability data and more expert information about this specific topic.