Linuxカーネルに修正パッチ、攻撃者のVM脱出を可能にする脆弱性

この脆弱性はカーネルのネットワークスタックに存在し、侵害されたVM内の攻撃者が基盤となるホストシステムに到達できる恐れがあります。

Linuxカーネルのネットワークスタックに、ゲストからホストへの脱出攻撃を許す脆弱性が見つかりました。仮想マシン(VM)内で活動する攻撃者が、分離の境界を越えて基盤のホストにアクセスできる可能性があります。

この脆弱性は「PwnEscape」と名付けられ、CVE-2026-99999として管理されています。ゲストが制御できるパケットのメタデータにより、カーネルが処理を終えたあとのIPv4ヘッダーを書き換える書き込みを引き起こせます。この欠陥は、他の攻撃手法と組み合わせることで、ホストレベルでのコード実行につなげることが可能です。

問題を発見したのは、Pwn.aiのセキュリティ研究者Paulos Yibelo氏です。同氏は、8月18日に発表されたVercelの100万ドル規模のSandboxセキュリティチャレンジに参加していました。このチャレンジは、Vercelのサンドボックス基盤の分離境界を検証するもので、VM自体から脱出してホストに到達できるかどうかも対象でした。

Vercelは、PwnEscapeをプログラムに寄せられた報告のうち最も深刻なものだと説明しています。同社のプリンシパルセキュリティエンジニアAndy Riancho氏はブログ記事で、「パケットに関連するクラッシュとコード実行の攻撃は、Vercel Sandboxの構成に合わせた研究者自身のKVMおよびFirecracker環境で実証されました」と述べています。Vercel Sandboxで顧客データへのアクセスが確認された報告はないとも付け加えました。

この問題はすでに修正されています。NVDの説明によると、安定版ブランチ向けの修正は7件あります。対象はLinuxの5.10、5.15、6.1、6.6、6.12、6.18、7.2の各バージョンです。これに加え、メインライン向けの修正が1件あります。

遅延チェックサムがカーネルの信頼するヘッダーを書き換え

PwnEscapeが悪用するのは、Linuxのチェックサムオフロード機構です。この機構により、カーネルはネットワークパケットのチェックサム計算を、処理の後段まで先送りできます。パケットのメタデータには、計算の開始位置と結果の書き込み先が指定されています。

問題が生じるのは、攻撃者が制御するチェックサムのメタデータが、パケットのIPv4ヘッダーへの書き込みを指示する場合です。Linuxは当初、元のヘッダーを使ってパケットを処理します。ところが、その後のチェックサム完了処理によって、フラグメンテーションのコードが再びヘッダーを参照する前に、ヘッダーが書き換えられることがあります。

Yibelo氏は、IPv4ヘッダーの解釈上の長さを20バイトから60バイトへ変更することに成功し、これを実証しました。フラグメンテーションのコードは、パケットの有効データを超えた部分までヘッダーの一部として扱います。その結果、隣接するホストメモリの32バイトが送信パケットに含まれてしまいました。

これは実質的に、TOCTOU(time-of-check/time-of-use)TOCTOUの問題です。カーネルはあるバージョンのヘッダーを使ってセキュリティ上の判断を下し、のちに再検証することなく、変更されたバージョンに基づいて動作します。ただしYibelo氏はブログ記事で、この一連の流れにスレッド間の通常の競合は必要ないと説明しています。遅延された書き込みは、通常のネットワーク処理の中で発生するためです。

Linuxの修正はチェックサムの書き込みを保護

アップストリームで採用された修正はコミット6785011f8b16で、関連するチェックサム完了処理の前に検証チェックを追加します。これにより、影響を受ける処理経路でチェックサムの書き込みがIPv4ヘッダーを破壊することを防ぎます。

ブログ記事によると、このパッチは10月8日にLinuxの開発ツリーへ適用され、10月14日にメインラインカーネルへマージされました。Yibelo氏は、この変更を多層防御の措置だと位置づけています。信頼できないチェックサムのメタデータに対する、より広範な検証は今後の課題として残るとも指摘しました。

Yibelo氏は、メモリリークをさらなる攻撃手順と連鎖させ、カーネルメモリへの任意の書き込みを実現したと報告しています。さらに、自身のテスト環境でホストのroot権限で動くヘルパーを実行したということです。同氏は「得られた能力を限定的なラボ環境の攻撃チェーンで使い、ホストroot権限のヘルパーを実行して、ホストが生成したマーカーをゲストに返しました。この攻撃チェーンは、完全なコールドブートを4回別々に行った環境で成功しています」と述べました。

ゲストからホストへの脱出をどのように実現したのか、詳しい手法は今後公開される見込みです。一方でYibelo氏は、この問題はKVMや特定のハイパーバイザーに固有のものではないと強調しています。原因はゲストのトラフィックを扱うLinuxのネットワークスタックにあるとのことです。

Yibelo氏は「セキュリティ業界はこの投稿を手がかりに、影響を受ける他のハイパーバイザーを突き止めるでしょう。設定の弱い環境を狙うエクスプロイトは数週間以内に、ハイパーバイザーのデフォルト設定で動作するエクスプロイトは1カ月以内に登場すると見ています」と警告しています。

翻訳元: https://www.csoonline.com/article/4236460/linux-kernel-gets-a-fix-for-a-flaw-that-enabled-attackers-to-escape-vms.html

本記事は csoonline.com の記事を翻訳・要約したものです。