公開:

【CVE-2024-50157】Linux kernelのRDMA/bnxt_reドライバーにCPUロックアップの脆弱性、FIFOの占有チェックループに起因

text: XEXEQ編集部
(記事は執筆時の情報に基づいており、現在では異なる場合があります)


記事の要約

  • Linux kernelのRDMA/bnxt_reドライバーに脆弱性
  • FIFOの占有チェックループによりCPUロックアップが発生
  • バージョン6.6から6.11.5までが影響対象

Linux kernelのRDMA/bnxt_reドライバーにCPUロックアップの脆弱性

kernel.orgは2024年11月7日、Linux kernelのRDMA/bnxt_reドライバーにおいてCPUロックアップを引き起こす脆弱性【CVE-2024-50157】を公開した。ドライバーがペーシング割り込みを受信した際にFIFOの占有率がしきい値を下回るまで無期限に待機してしまい、データベースの処理速度が非常に高い場合にプロセッサーの1つでソフトロックアップが発生する可能性があることが判明している。[1]

この脆弱性は、FPGAのループカウントを追加し__wait_for_fifo_occupancy_below_thが長時間を要する場合に終了するように修正された。この対策により、占有率がしきい値を下回るまでペーシングは継続され、bnxt_re_pacing_timer_expのチェックとFIFO占有率に基づくペーシングの追加スケジューリングによって安全性が確保されている。

影響を受けるバージョンは、Linux 6.6から6.11.5までとなっている。また、修正済みバージョンとしてLinux 6.11.6以降および6.12以降のリリースが提供されており、該当するバージョンを使用しているユーザーは速やかなアップデートが推奨される。

Linux kernelの脆弱性修正バージョンまとめ

項目 詳細
影響を受けるバージョン Linux 6.6から6.11.5まで
修正済みバージョン Linux 6.11.6以降、6.12以降
脆弱性ID CVE-2024-50157
公開日 2024年11月7日
更新日 2024年11月19日

CPUロックアップについて

CPUロックアップとは、プロセッサーが特定の処理で停止し、システムの応答が極めて遅くなるか完全に停止してしまう状態のことを指す。主な特徴として、以下のような点が挙げられる。

  • プロセッサーが特定の処理で無限ループに陥る
  • システムの応答性が著しく低下または停止
  • 他のプログラムやプロセスの実行に影響を及ぼす

Linux kernelのRDMA/bnxt_reドライバーで発生したCPUロックアップは、FIFOの占有率チェックループが無限に続くことで引き起こされている。ペーシング割り込みを受信した際にFIFOの占有率がしきい値を下回るまで無期限に待機してしまうことで、高速なデータベース処理時にプロセッサーの1つでソフトロックアップが発生する可能性があるのだ。

Linux kernelの脆弱性修正に関する考察

今回の脆弱性修正では、FPGAのループカウント追加による制御機構の実装が評価に値する。特にbnxt_re_pacing_timer_expのチェックとFIFO占有率に基づくペーシングの追加スケジューリングによって、システムの安定性と処理の継続性が確保されたことは大きな進展だろう。

しかしながら、今後も高速なデータベース処理やリアルタイム性を要する環境では、同様のロックアップ問題が発生する可能性は否定できない。ドライバーレベルでの監視機能の強化や、異常検知時の自動リカバリー機能の実装が、将来的な課題として浮上してくるだろう。

また、Linux kernelの安定性向上に向けては、各ドライバーコンポーネント間の相互作用をより詳細に分析する必要性が高まっている。特にRDMAのような高速データ転送機能においては、パフォーマンスと安定性のバランスを取りつつ、より堅牢なエラーハンドリング機構の実装が期待される。

参考サイト

  1. ^ CVE. 「CVE-2024-50157 | CVE」. https://www.cve.org/CVERecord?id=CVE-2024-50157, (参照 24-12-06).

※上記コンテンツはAIで確認しておりますが、間違い等ある場合はコメントよりご連絡いただけますと幸いです。

「セキュリティ」に関するコラム一覧「セキュリティ」に関するニュース一覧
アーカイブ一覧
セキュリティに関する人気タグ
セキュリティに関するカテゴリ
ブログに戻る

コメントを残す

コメントは公開前に承認される必要があることにご注意ください。