公開:

【CVE-2024-56759】Linuxカーネルのbtrfsファイルシステムにuse-after-free脆弱性、トレース機能の改善で対策を実施

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


記事の要約

  • Linuxカーネルのbtrfsファイルシステムにuse-after-free脆弱性
  • COWing処理時のトレース機能有効化で発生する問題を修正
  • トレースポイント呼び出しの位置変更で脆弱性に対処

Linux btrfsファイルシステムの脆弱性とその対策

Linuxカーネルの開発チームは、btrfsファイルシステムにおけるuse-after-free脆弱性【CVE-2024-56759】を2025年1月6日に公開した。この脆弱性はbtrfs_cow_block関数でツリーブロックのCOW処理を行う際にトレース機能が有効化されている状態で発生し、プリエンプションが有効な環境下でエクステントバッファにuse-after-freeが引き起こされる可能性がある。[1]

脆弱性はbtrfs_search_slot関数などのパスで発生し、btrfs_force_cow_block関数内でfree_extent_buffer_stale関数を呼び出した際にエクステントバッファの解放がRCUによってスケジュールされることが原因となっている。プリエンプション有効時にtrace_btrfs_cow_blockが呼び出される前にタスクが切り替わると、既に解放されたエクステントバッファにアクセスしてしまう可能性があるのだ。

修正ではtrace_btrfs_cow_blockの呼び出し位置をbtrfs_cow_blockからbtrfs_force_cow_blockに移動し、COWされたエクステントバッファが解放される前にトレースポイントを実行するように変更された。この修正により、defrag.cのbtrfs_realloc_node関数でもトレースポイントが呼び出されるようになったが、これは問題なく、むしろ本来必要だった機能が追加されたことになる。

Linux btrfsファイルシステムの影響を受けるバージョン一覧

項目 詳細
CVE番号 CVE-2024-56759
公開日 2025年1月6日
更新日 2025年1月9日
影響を受けるバージョン 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2から各修正パッチ適用前まで
影響を受けないバージョン 5.10.233以降、5.15.176以降、6.1.124以降、6.6.70以降、6.12.8以降、6.13-rc5以降

use-after-freeについて

use-after-freeとは、既に解放されたメモリ領域に対してアクセスを試みるメモリ破壊の一種であり、主な特徴として以下のような点が挙げられる。

  • 解放済みメモリへのアクセスによって引き起こされる脆弱性
  • メモリ内容の改ざんや情報漏洩のリスクがある
  • プログラムのクラッシュや予期せぬ動作の原因となる

今回のbtrfsファイルシステムの脆弱性では、COW処理時のエクステントバッファの解放とトレースポイントの実行タイミングの問題によってuse-after-freeが発生する可能性があった。この種の脆弱性は特にカーネルレベルで発生した場合、システム全体に深刻な影響を及ぼす可能性があるため、早急な対応が必要とされている。

btrfsファイルシステムの脆弱性対策に関する考察

今回の修正によってトレースポイントの呼び出し位置を変更したことは、メモリ安全性の観点から適切な対応といえる。エクステントバッファの解放前にトレースポイントを実行することで、use-after-freeのリスクを確実に排除できるようになったことは、システムの安定性向上に大きく貢献するだろう。

一方で、この問題はプリエンプション有効時のみで発生する特殊なケースであり、同様の問題が他の箇所にも潜在している可能性は否定できない。今後はトレース機能とメモリ管理の相互作用について、より包括的な検証と設計の見直しが必要になるかもしれない。

btrfsファイルシステムの開発においては、パフォーマンスと信頼性のバランスが重要な課題となっている。COW機能のような高度な機能を提供しながら、メモリ安全性を確保するためには、より綿密なコードレビューとテストが必要になるだろう。

参考サイト

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

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

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

コメントを残す

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