公開:

【CVE-2024-56675】Linuxカーネルのbpf_prog関連UAF脆弱性が修正、複数バージョンに影響

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


記事の要約

  • Linuxカーネルの新たなUAF脆弱性が修正
  • bpf_progとアタッチメントのRCUフレーバーの不一致が原因
  • Linux 6.0以降の複数バージョンに影響

Linuxカーネルのbpf_prog関連脆弱性が修正

Linuxカーネルにおいて、bpf_progとアタッチメントのRCUフレーバーの不一致によるUAF(Use-After-Free)脆弱性が2024年12月27日に修正された。Uprobesがtasks-trace-RCU保護下でbpf_prog_run_array_uprobe()を使用する一方で、非スリープ可能なBPFプログラムをUprobeにアタッチすることが可能であることが原因となっている。[1]

非スリープ可能なBPFプログラムは通常のRCUを介して解放されるため、通常のRCU猶予期間がtasks-trace-RCUの猶予期間を意味しないことからUAFが発生する可能性があった。perf_eventへのbpf_progのアタッチメントを削除した後にtasks-trace-RCUの猶予期間を明示的に待機することで問題を解決している。

この脆弱性の影響を受けるLinuxバージョンは、コミット8c7dcb84e3b744b2b70baa7a44a9b1881c33a9c9以降から9245459a992d22fe0e92e988f49db1fec82c184a以前のものが該当する。影響を受けない範囲として、Linux 6.1.121以降のLinux 6.1系、Linux 6.6.67以降のLinux 6.6系、Linux 6.12.6以降のLinux 6.12系などが挙げられる。

Linuxカーネルの脆弱性対策まとめ

項目 詳細
公開日 2024年12月27日
影響を受けるバージョン Linux 6.0以降の特定バージョン
脆弱性の種類 Use-After-Free (UAF)
原因 bpf_progとアタッチメントのRCUフレーバーの不一致
修正方法 tasks-trace-RCU猶予期間の明示的待機を追加

Use-After-Free (UAF)について

Use-After-Free (UAF)とは、既に解放されたメモリ領域にアクセスしようとする際に発生する脆弱性のことを指す。主な特徴として、以下のような点が挙げられる。

  • メモリが解放された後も参照が残り続ける状態で発生
  • システムのクラッシュや任意のコード実行につながる可能性
  • メモリ管理の不適切な実装により引き起こされる

Linuxカーネルにおける今回のUAF脆弱性は、異なるRCUフレーバー間での同期の問題により発生している。非スリープ可能なBPFプログラムが通常のRCUを介して解放される一方で、Uprobesがtasks-trace-RCU保護下で動作することにより、メモリ解放のタイミングにずれが生じる可能性があるのだ。

Linuxカーネルのbpf_prog関連脆弱性に関する考察

Linuxカーネルのセキュリティチームが迅速に対応し、明確な修正方法を提示したことは高く評価できる。特にtasks-trace-RCU猶予期間の明示的な待機を追加することで、異なるRCUフレーバー間の同期問題を効果的に解決している点は、今後の同様の問題に対する参考となるだろう。

しかし、今後もBPFプログラムの複雑化や新機能の追加に伴い、同様のメモリ管理に関する問題が発生する可能性は否定できない。特にRCUのような並行処理メカニズムを使用する場合、異なる保護機構間の相互作用を慎重に考慮する必要があるだろう。

Linuxカーネルコミュニティには、このような脆弱性の早期発見と修正を継続的に行える体制の維持が求められる。特にセキュリティ関連の変更については、より厳密なコードレビューとテストが必要となるかもしれない。

参考サイト

  1. ^ CVE. 「CVE-2024-56675 | CVE」. https://www.cve.org/CVERecord?id=CVE-2024-56675, (参照 25-01-11).

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

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

コメントを残す

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