公開:

【CVE-2024-57940】Linuxカーネルのexfatドライバにおけるディレクトリエントリのリーク問題、無限ループにより同期処理が停止する脆弱性が発見

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


記事の要約

  • Linuxカーネルのexfatファイルシステムに脆弱性が発見
  • 無限ループによりs_lockが解放されない問題が報告
  • クラスタチェーンの処理を改善し脆弱性に対処

Linuxカーネルのexfatドライバに無限ループの脆弱性

kernel.orgは2025年1月21日、Linuxカーネルのexfatファイルシステムドライバに存在する無限ループの脆弱性【CVE-2024-57940】を公開した。クラスタチェーンが自身を参照する構造になっている場合に無限ループが発生し、s_lockが解放されなくなる深刻な問題が報告されている。[1]

この脆弱性は特にexfat_readdir()関数において、未使用のディレクトリエントリが存在する場合にdentryがインクリメントされず、条件チェックが正常に機能しなくなることで発生する。結果としてexfat_sync_fs()などの他のタスクが停止する状態に陥ってしまうのだ。

対策として、クラスタチェーンの走査時に未使用のディレクトリエントリが存在する場合は処理を停止する修正が実施された。この対応はLinuxカーネルバージョン5.7以降に影響を与え、各バージョンごとに個別のパッチが提供されている。

影響を受けるLinuxカーネルバージョンまとめ

カーネルバージョン 影響状況
5.7未満 影響なし
5.7以降 影響あり
5.15.177以降 修正済み
6.1.125以降 修正済み
6.6.72以降 修正済み
6.12.10以降 修正済み
6.13以降 修正済み

無限ループについて

無限ループとは、プログラムの実行フローが特定の処理を永続的に繰り返してしまう状態のことを指す。主な特徴として、以下のような点が挙げられる。

  • プログラムの実行が終了せず、システムリソースを消費し続ける
  • 他の処理がブロックされ、システム全体のパフォーマンスに影響を与える
  • 条件分岐の設計ミスやカウンタの不適切な処理が主な原因となる

今回のexfatドライバの脆弱性では、クラスタチェーンの自己参照とdentryのインクリメント処理の不備により無限ループが発生している。この問題により、ファイルシステムのロック機構が正常に機能せず、同期処理など他の重要な操作が実行できなくなる状態に陥ってしまう。

exfatドライバの脆弱性に関する考察

今回の脆弱性は、ファイルシステムの基本的な処理に関わる部分で発見されたという点で重要な意味を持っている。特にexfatがMicrosoft由来のファイルシステムであり、クロスプラットフォームでの互換性が求められる中で、このような問題が見つかったことは、実装の複雑さと課題を浮き彫りにしているだろう。

今後の課題として、ファイルシステムの整合性チェックをより厳密に行う仕組みの導入が必要となってくる。特にクラスタチェーンの循環参照のような異常な状態を早期に検出し、適切なエラーハンドリングを行うことで、システム全体の安定性を向上させることが重要だ。

また、オープンソースコミュニティによる継続的なコードレビューと脆弱性検査の重要性も再認識された。今後はより多くの目でコードをチェックする体制を整え、早期に問題を発見・修正できる仕組みづくりが期待される。

参考サイト

  1. ^ CVE. 「CVE-2024-57940 | CVE」. https://www.cve.org/CVERecord?id=CVE-2024-57940, (参照 25-01-28).
  2. Microsoft. https://www.microsoft.com/ja-jp

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

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

コメントを残す

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