Linux Netfilter の権限昇格の脆弱性 CVE-2024-27397:PoC エクスプロイトが登場

Linux Kernel Privilege Escalation Vulnerability (CVE-2024-27397) Exploited: PoC Released

2025/01/13 SecurityOnline — Linux Kernel の netfilter nf_tables コンポーネントに存在する、脆弱性 CVE-2024-27397 (CVSS:7.0) に関する詳細な分析と PoC エクスプロイト・コードが、セキュリティ研究者である liona24 により提供された。この use-after-free の脆弱性は、バージョン 4.1 〜 6.8 に影響を及ぼすものであり、ローカル権限昇格を引き起こす可能性を持つという。

この脆弱性 CVE-2024-27397 は、NFT セット内の要素のタイムアウト処理に起因する。トランザクション中に、これらの要素の有効期限が切れると、非対称のクリーン・アップ操作がトリガーされ、参照カウントの更新の欠落や、use-after-free 状態の発生などが起こり得る。この欠陥を悪用するローカル攻撃者は、システム・クラッシュや権限昇格を達成することになる。

この脆弱性は netfilter nf_tables コンポーネントに存在し、期限切れの要素を取り込んでしまったロールバック操作中に、悪用の可能性を生じるものである。具体的には、nf_tables.h で定義されている nft_set_elem_expired 関数で、この問題は発生する。

この脆弱性を悪用するために、特定のトランザクション設定を作成する方法を、研究者たちは詳しく説明している。

  • 有効期限が短いセットに NFT_JUMP 判定を追加し、使用回数を増やす。
  • 有効期限が切れる前にセットを削除し、使用回数を減らす。
  • ジャンク操作を実行してプロセスを遅らせ、追加された要素を期限切れにする。
  • 無効な操作をトリガーし、トランザクションを強制的に中止する。

このロールバック中も、期限切れの要素の使用回数は復元されず、use-after-free 状態が発生する。参照カウントを操作する攻撃者は、RIP の制御を取得し、解放されたチェーン・オブジェクトを悪用できる。

この悪用の信頼性は極めて高いものであり、研究者たちのテストでは、Address Space Layout Randomization (ASLR) をバイパスする成功率が、90% ~ 100% であることが示されている。

この脆弱性は、コミット c3e1b005ed1c で混入したものであり、コミット 7395dfacfff65e9938ac0889dafa1ab01e987d15 で修正されている。ユーザーに対して強く推奨されるのは、最新のカーネル・バージョンへと、速やかに更新することだ。

なお、脆弱性 CVE-2024-27397 の技術詳細と PoC エクスプロイト・コードは、Github で入手できる