Linux脆弱性 PwnEscape(CVE-2026-99999)の仕組みと対策 -VMの中からホストを攻撃できる?-

2026年10月15日、Linuxカーネルに深刻な脆弱性 CVE-2026-99999(通称「PwnEscape」)が公開されました。仮想マシン(ゲスト)の中にいる攻撃者が、その仮想マシンを動かしている物理サーバー(ホスト)のメモリを読み出したり、ホストを停止させたりできるというものです。国内でも、さくらインターネットやKAGOYAが新規申込を一時停止するなどの影響が出ています。

この記事では、仕組みをできるだけ図でかみ砕いて整理します。なお、攻撃の具体的な手順には踏み込みません。

【更新履歴】

  • 2026/10/22:続報を反映しました。主な変更点は次のとおりです(本文中の 10/22更新 が付いた箇所)。
    • 「Vercelの本番環境でもメモリ読み出しを確認」とした記述を訂正(発見者の一次情報では、実証は自前の検証環境で行ったと説明されているため)
    • ディストリビューションごとの修正状況を追加(Debian・Amazon Linuxなどは修正済み、RHEL・Ubuntuは未修正)
    • AWSの見解、修正を当てられない場合の暫定策を追加
    • 国内事業者の動きを更新(さくらのクラウドは作成を再開、KAGOYAも新規申込を停止)
  • 2026/10/17:初版公開

基本情報

通称PwnEscape
深刻度CVSS 9.3(cve.org、Ubuntu)/ 8.8(Red Hat、Amazon、SUSE)
攻撃元ローカル(ゲストVMの内側、またはローカルユーザー)
影響範囲Linuxカーネル 2.6.27 以降のほぼ全バージョン
公開日2026年10月15日
発見者pwn.ai(Vercelの賞金100万ドルのサンドボックスチャレンジで発見)
修正コミット 6785011f8b16「ipv4: validate checksum_start before completing checksum」
悪用状況10/22更新 公開PoCなし、実際の悪用は未確認、CISA KEV(悪用が確認された脆弱性のカタログ)にも未掲載(2026年10月21日時点)

深刻度の数値が機関によって違うのは、主に「攻撃にゲスト内でどの程度の権限が必要か」の見積もりの違いによるものです。

前提知識:virtio-net とチェックサム・オフロード

virtio-net は、仮想マシン用の仮想ネットワークカードの規格です。実在するNICをソフトウェアで真似る方式と違い、ゲスト側も「自分は仮想マシンだ」と承知したうえで、ホストと共有メモリを介して高速にパケットを受け渡します。KVM、QEMU、Firecracker、Proxmox など、Linux系の仮想化ではほぼ標準になっています。

チェックサム・オフロード は、TCP/UDPのチェックサム(データ破損を検出するための合計値)の計算を後回しにして、送信直前にまとめて計算させる仕組みです。virtio-net では、ゲストがパケットに「ここから計算して、結果をここに書いておいてください」という付箋(メタデータ)を添えてホストに渡します。

今回の脆弱性は、この付箋の「書き込み先」をゲストが自由に指定でき、ホストがそれを十分に検証していなかったことが原因です。

攻撃の構図

まず押さえておきたいのは、攻撃者は外部の第三者ではなく、すでにゲストVMの中にいるという点です。VPSやクラウドを普通に契約した利用者や、Vercelのサンドボックスのように任意のコードを実行させてもらえるサービスの利用者が、攻撃者になりえます。

ゲストが外に出すパケットは、すべてホストのLinuxカーネルを経由します。そのため、ゲストは「普通に通信する」だけで、ホストのカーネルにデータを処理させられます。外部の第三者がネットワーク越しに直接このバグを突くことはできません。

脆弱性の仕組み:「長さの札」を偽る

本質は「検査済みのデータが、検査のあとで書き換えられる」ことです。

  1. ホストはパケットのIPヘッダを検査し、「正常」と判断して以後は信用します。
  2. その後、付箋どおりにチェックサムを書き込みます。このとき書き込み先をIPヘッダの長さ欄に重ねると、長さが「20バイト」から「60バイト」に書き換わります。
  3. 後続のパケット分割処理は、書き換わった長さをそのまま信じて動きます。

ポイントは、パケットの入れ物(バッファ)が隔離された箱ではなく、カーネルが何にでも使う共有の領域(ヒープ)にあることです。すぐ隣には、別の目的で使われているデータが並んでいます。

攻撃者が書き込んでいるのはパケットの中だけです。しかし「この箱の中身は60バイトです」と札を偽ることで、分割処理は本来の28バイトを超えて、隣にある32バイトまで「パケットの一部」として外へ送り出してしまいます。こうしてホストのメモリが漏れます。

被害はどこまで実証されているか

段階状況
ホストのメモリ読み出し10/22更新 発見者の検証環境で実証済み
実証済み(Vercelの本番環境でも確認)
ホストのクラッシュ(同居する全テナントが停止)発見者の検証環境で実証済み
ホストへの書き込み、root権限での実行発見者の検証環境でのみ実証。手順は非公開
事業者の本番環境でのroot奪取主張されていない

訂正(10/22):初版では、メモリ読み出しについて「Vercelの本番環境でも確認」と書いていました。これは二次情報(技術ブログ)に基づく記述でした。発見者 pwn.ai の記事では、実証は自前の検証環境で行ったと説明されていて、本番環境の観測データは公開の可否が確認できるまで伏せるとしています。お詫びして訂正します。

読み出しだけでなく、ホストの乗っ取りまで到達したと報告されている点が重要です。発見者によると、別の脆弱性は使わず、同じバグにメモリの使われ方の制御を組み合わせて書き込みまで発展させたとのことです。具体的な手順は公開されておらず、続編の記事で解説するとしています(10/22更新 10月21日時点で続編は未公開)。

一般論として、カーネル攻撃では「読み出しでメモリの配置(地図)を手に入れ、書き込みで重要な場所を書き換える」という二段構えが定石です。読み出しの手段があるだけでも危険とされるのはこのためです。発見者は、悪用コードが数週間から1か月程度で出回るだろうと予測しています。

影響を受ける環境

原因は特定のハイパーバイザーではなく、ホストOSのネットワーク処理にあります。そのため、KVM、Firecracker、QEMU など基盤の種類を問わず、Linuxをホストにして他人のVMを動かしている環境が対象になります。過去のVM脱出脆弱性(QEMUの仮想フロッピーを狙ったVENOMなど)は特定の仮想デバイスに依存していましたが、今回はそうした前提がありません。

10/22更新 自前のKVM、Proxmox、OpenStackなどの仮想化ホストが主な対象です。一方、報道によると、AWSはEC2、Lambda、Fargateなど自社が管理するサービスは影響を受けないとしています。

対応方法

重要:ゲストのカーネルを更新しても、VMからの脱出は防げません。悪用されるのはホスト側のカーネルなので、守るべきはホストです。

立場対応
共用サーバー、VPS、クラウドの利用者事業者のメンテナンス情報を確認する(自分でできることは基本的にない)
ベアメタル、自前のハイパーバイザー(Proxmoxなど)の管理者ホストのカーネルを更新し、再起動する
他人にシェルを渡している、またはゲスト内でさらにVMやコンテナを動かしているゲスト自身を守るため、ゲストも更新しておく

カーネルのパッケージを入れただけでは、再起動するまで古いカーネルが動き続ける点に注意してください。すぐに再起動できない場合は、ゲストを修正済みのホストへライブマイグレーションしてから再起動する方法もあります。

修正済みのカーネルバージョン

Linuxカーネル本体(kernel.org)の安定版ブランチで最初に修正されたバージョンは、次のとおりと報じられています。

5.10.272 / 5.15.223 / 6.1.190 / 6.6.159 / 6.12.113 / 6.18.57 / 7.2.11

ただし、これは公式カーネルの番号です。Ubuntu や RHEL 系などのディストリビューションは、古い番号のまま修正を取り込むことがあるため、uname -r の番号と単純に比べることはできません。各ディストリビューションのセキュリティ情報で、CVE-2026-99999 が修正済みのパッケージかどうかを確認してください。

10/22更新 ディストリビューションごとの修正状況

初版の時点(10月17日)では、Debianでも修正済みは開発版の sid だけでした。その後、各ディストリビューションの対応が進んでいます。

ディストリビューション状況(10月21〜22日時点)
Debian修正済み:bookworm(6.1.190-1、DLA-4841-1)、trixie(6.12.113-1、DSA-6568-1)、forky・sid(7.2.11-1)
Amazon Linux修正パッケージあり
Proxmox7.0系列で修正済み。その他の系列は未確認
AlmaLinux修正カーネルをテスト中
SUSE修正をQA中
RHEL6〜10が影響あり。修正(RHSA)はまだ
Ubuntu優先度は Medium。ほぼ全リリースが脆弱で、修正(USN)はまだ

状況は日々変わるので、実際に作業する前に各ディストリビューションの公式情報を確認してください。

10/22更新 すぐに修正を当てられない場合

RHEL や Ubuntu のように修正版がまだ出ていない場合の一時しのぎとして、次のような方法が紹介されています。どれも効果が十分に検証されたものではなく、AWSは「回避策はない」としている点に注意してください。

  • チェックサム・オフロードを無効にする:信頼できないゲストの virtio-net で、チェックサム・オフロードを切る方法です。ゲストの再起動が必要で、通信性能も下がります。Firecracker での有効性は未確認とされています。
  • 再起動なしのパッチ(ライブパッチ):有償サービスの KernelCare が、RHEL 9、AlmaLinux、Rocky Linux などで配信を始めています。

また、今回の修正は「多層防御の一環」と位置づけられていて、受信時の検証を強化する追加パッチが予想されています。今後もう一度カーネル更新が来る可能性が高いので、続報に注意が必要です。

10/22更新 国内の動き

さくらインターネットは10月16日、VPS、レンタルサーバ、マネージドサーバの新規申込を停止し、さくらのクラウドの新規プロジェクト作成も一時停止しました。その後の動きは次のとおりです。

事業者・サービス状況(10月21〜22日時点)
さくらのクラウド10月20日に新規プロジェクトの作成を再開。既存環境のメンテナンスは段階的に行い、対象者には作業日の約1週間前にメールで通知
さくらのVPS新規申込、スケールアップ、ISOからのインストール、クラウドへの移行を停止中。再開日は未定
さくらのレンタルサーバ / マネージドサーバ新規申込を停止中。再開日は未定
KAGOYA10月19日18時から、KAGOYA CLOUD VPS、レンタルサーバなど5サービスの新規申込を停止

さくらインターネットは10月21日から22日にかけて、VPSやレンタルサーバのホストを順番に再起動する緊急メンテナンスを行っています。停止時間の目安は、VPSが1台あたり約1時間、レンタルサーバが数分から30分程度です。なお、メンテナンスの通知そのものにはCVE番号が書かれていないため、すべてがこの件のための作業かどうかは公式には明示されていません。

AIが見つけた脆弱性という側面

今回の脆弱性は、発見の経緯も注目されています。pwn.ai は大規模言語モデルを中心にした調査ツールを使い、人間の研究者が方針を決め、モデルがカーネルのソースコードの解析を担う形で調査を進めました。チャレンジ開始から3日、API費用700ドル未満でこの欠陥にたどり着いたとされています。

カーネルの論理的な欠陥を見つけるには、これまで熟練した研究者が長い時間をかける必要がありました。そのコストが大きく下がったことは、防御側にとっても見過ごせない変化です。

まとめ

  • CVE-2026-99999(PwnEscape)は、LinuxカーネルのIPv4処理にある、VM脱出につながる脆弱性。
  • 攻撃者はゲストVMの内側にいて、チェックサムの書き込みで「検査済みのヘッダ」を書き換え、ホストのメモリを漏らす。
  • メモリ読み出し、ホスト停止、乗っ取りは、いずれも発見者の検証環境で実証。乗っ取りの手順は非公開で、実際の悪用は未確認。
  • 対策はホスト側のカーネル更新と再起動。ゲストの更新だけでは防げない。
  • Debian、Amazon Linuxなどは修正済み。RHEL、Ubuntuはまだ(10月22日時点)。追加パッチの可能性もある。
  • VPSやクラウドの利用者は、事業者のメンテナンス情報を確認する。

参考