公開:

【CVE-2024-57900】Linuxカーネルのilaモジュールに競合状態の脆弱性、nf_register_net_hooks関数の直列化による対策を実施

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


記事の要約

  • Linuxカーネルにilaモジュールの競合状態の脆弱性
  • nf_register_net_hooks()関数の呼び出しを直列化する修正
  • 複数のカーネルバージョンに影響する深刻な問題

Linuxカーネルのilaモジュールに競合状態の脆弱性【CVE-2024-57900】

kernel.orgは2025年1月15日、Linuxカーネルのilaモジュールにおいて競合状態の脆弱性【CVE-2024-57900】を確認し修正を実施したことを発表した。この脆弱性はila_add_mapping()関数内でsyzbotによって発見され、nf_register_net_hooks()関数の並列呼び出しによって引き起こされる深刻な問題である。[1]

この脆弱性は複数のLinuxカーネルバージョンに影響を及ぼすことが判明しており、特にバージョン4.5以降のシステムでは早急な対応が必要とされている。修正では競合状態を防ぐためにmutexを導入し、一度に1つのスレッドのみがnf_register_net_hooks()を呼び出せるよう制御を実装することで問題の解決を図っている。

セキュリティ研究者によって発見されたこの問題は、KASANによってスラブのuse-after-freeの脆弱性として特定された。rhashtableのコード内で発生するこの問題は、特にdhcpdプロセスにおいて重要なメモリ管理の問題を引き起こす可能性があることが確認されている。

Linuxカーネルの脆弱性影響範囲

カーネルバージョン 影響状況
4.5以前 影響なし
4.5以降 影響あり
5.4.289以降の5.4系 影響なし
5.10.233以降の5.10系 影響なし
5.15.176以降の5.15系 影響なし
6.1.124以降の6.1系 影響なし

競合状態について

競合状態とは、複数のプロセスやスレッドが同じリソースに同時にアクセスすることで発生する問題のことを指す。主な特徴として以下のような点が挙げられる。

  • 共有リソースへの並行アクセスによって発生する同期の問題
  • タイミングに依存する非決定的な動作を引き起こす可能性
  • データの整合性やシステムの安定性に重大な影響を与える可能性

今回のLinuxカーネルの脆弱性では、ilaモジュール内のnf_register_net_hooks()関数の呼び出しにおいて競合状態が発生することが確認されている。この問題はKASANによってスラブのuse-after-free脆弱性として検出され、特にrhashtableのコード内でメモリ管理の問題を引き起こす可能性が指摘されている。

Linuxカーネルの脆弱性対策に関する考察

今回のLinuxカーネルの脆弱性対策では、mutexを導入して関数呼び出しを直列化するアプローチが採用された点が評価できる。この対策はコードの複雑性を最小限に抑えつつ、効果的に競合状態を防止する方法として理にかなっており、同様の問題を抱える他のモジュールにも応用可能な解決策となっている。

しかしながら、この種の並行処理に関する問題は完全な検証が難しく、今後も類似の脆弱性が発見される可能性は否定できない。特にネットワークスタックのような複雑なサブシステムでは、異なるコンポーネント間の相互作用によって予期せぬ競合状態が発生する可能性があるため、継続的な監視と検証が必要になるだろう。

また、KASANのような動的解析ツールの活用は、この種の問題の早期発見に有効であることが示された。今後はCIパイプラインにこうした解析ツールを組み込み、コードの変更がマージされる前に潜在的な問題を検出する仕組みの構築が望まれる。

参考サイト

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

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

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

コメントを残す

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