Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-99999 — CVE-2026-99999のシミュレーション専用の概念実証。これはLinuxカーネルのvirtio-net IPv4 csum_start検証の不具合により、ゲストからホストへのヒープメモリ開示を可能にするものです。 | Kitploit
ツール/GitHubGitHub/01luyicheng/cve-2026-99999
メモリフォレンジック脆弱性分析エクスプロイトネットワークセキュリティ学習と教育
GitHub01luyicheng/cve-2026-99999

CVE-2026-99999

CVE-2026-99999のシミュレーション専用の概念実証。これはLinuxカーネルのvirtio-net IPv4 csum_start検証の不具合により、ゲストからホストへのヒープメモリ開示を可能にするものです。

リポジトリを見る
51318日前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

CVE-2026-99999 (PwnEscape) — Linux カーネル IPv4 csum_start 検証バグ PoC

不正な virtio-net チェックサムメタデータを介した Linux カーネルの情報漏洩。
CVSS 9.3 CRITICAL | CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
発見者: Paulos | CNA: kernel.org | 公開日: 2026-10-15

⚠️ これは教育・検証用の PoC です。--simulate モードでのみ動作します (ネットワーク I/O なし、root 権限不要)。実際のシステムを悪用することなく、 攻撃チェーンをローカルで実演するものです。


目次

  1. 脆弱性の概要
  2. 技術的詳細
  3. 影響を受けるバージョン
  4. クイックスタート
  5. オプション
  6. 動作の仕組み
  7. 攻撃シナリオ
  8. コードレビュー
  9. 緩和策
  10. 参考文献
  11. 法的免責事項

脆弱性の概要

ゲスト VM は、virtio_net_hdr の csum_start == 0 を持つ virtio-net フレームを 送信できます。これはトランスポートヘッダではなく IPv4 ヘッダを指しています。 ホスト上での GSO セグメンテーション中に、skb_checksum_help() が [csum_start, csum_start + csum_offset + 2) を対象とするチェックサムを再計算し、 その結果を csum_start + csum_offset に書き戻します。

csum_start = 0 かつ csum_offset = 0 の場合、この書き込みは IHL バイト (IP オフセット 0)に到達し、0x45(IHL 5 → 20 バイト)から 0x4F (IHL 15 → 60 バイト)へと破壊します。その後カーネルの ip_do_fragment() は、 20 バイトしか存在しないにもかかわらず IP ヘッダを 60 バイト読み取ります。 その結果、送信される各フラグメントに隣接するホストカーネルのヒープメモリが 約 32〜64 バイト混入します。

影響: ゲストからホストへのカーネルヒープメモリの継続的な漏洩。

攻撃対象領域: virtio-net NIC と TAP ブリッジングが有効な KVM/QEMU ホスト、 またはホストが virtio-net フレームを GSO 経由で処理するあらゆる VM→ホスト間の 通信経路。


技術的詳細

IP ヘッダのバイト配置 (RFC 791)

オフセットフィールドcsum_offset=0 で破壊csum_offset=6 で破壊
0バージョン + IHL✅ IHL バイト
1TOS
2–3全長
4–5識別子
6–7フラグ / フラグメントオフセット✅ フラグ/フラグメントオフセット (下位)
8TTL
9プロトコル
10–11ヘッダチェックサム
12–15送信元 IP
16–19宛先 IP

攻撃チェーン

Guest VM
  → constructs virtio_net_hdr with csum_start=0 (pointing at IP header)
  → sends frame through virtio-net to host
Host kernel (GSO segmentation path)
  → skb_checksum_help() called
  → writes checksum result to csum_start + csum_offset
  → if csum_offset=0: writes IHL byte (0x45 → 0x4F)
  → ip_do_fragment() reads 60B header when only 20B exist
  → ~32–64B heap memory included in each outbound fragment

2つの破損パス

csum_offset破損フィールド結果CVSSベクター
0 (デフォルト)IHLバイト (オフセット0)OOBヒープ読み取り → メモリリーク情報漏洩
6Flags/FragOffset (オフセット6)フラグメント再構築の妨害可用性

影響を受けるバージョン

修正コミット以前のすべてのLinuxカーネルバージョン。

影響なし (パッチ適用済み): 5.10.272+、5.15.223+、6.1.190+、6.12.113+、6.18.57+、7.2.11+

カーネルバージョンを確認:

uname -r
cat /proc/version

クイックスタート

要件: Python 3.6+ のみ。pip パッケージ不要、ネットワーク不要、root 不要。

# Clone
git clone https://github.com/01luyicheng/CVE-2026-99999.git
cd CVE-2026-99999

# Run — IHL corruption / heap-leak simulation (CVSS 9.3 path, default)
python3 CVE-2026-99999_pwnescape.py --simulate

# Simulate with 5 datagrams and 8 fragments each
python3 CVE-2026-99999_pwnescape.py --simulate -n 5 -f 8

# Flags/FragOffset corruption path (fragment reassembly disruption)
python3 CVE-2026-99999_pwnescape.py --simulate -c 6

--simulate を付けない場合、スクリプトは脆弱性の詳細をすべて出力して終了します:

python3 CVE-2026-99999_pwnescape.py

オプション

フラグ説明デフォルト
--simulateエクスプロイトチェーンのシミュレーションを実行(必須)—
-c, --csum-offset0 = IHL バイト(範囲外読み取り、デフォルト)、6 = Flags/FragOffset0
-n, --num-packetsシミュレーションするデータグラム数3
-f, --fragmentsデータグラムあたりのフラグメント数(最小 2)4

仕組み

シミュレーションは 5 つのステップで実行されます(ネットワーク不要):

  1. ステップ 1 — パケットの構築: 有効な Ethernet + IPv4 + UDP パケットを構築します。
  2. ステップ 2 — 悪意のある virtio_net_hdr の付加: csum_start=0(IPv4 IHL バイトを指す)と設定可能な csum_offset を持つ virtio_net_hdr を追加します。
  3. ステップ 3 — skb_checksum_help() の破壊をシミュレーション: csum_start + csum_offset へのカーネル書き込みをローカルでシミュレーションし、どの IP ヘッダーバイトがどの値に上書きされるかを示します。
  4. ステップ 4 — フラグメントへの影響を表示: 破壊された IP ヘッダーを持つ各 GSO フラグメントを再構築し、どのフィールドが影響を受けるかを示します。
  5. ステップ 5 — 結果の出力: 結果として得られるフラグメントサイズを出力し、IHL パス(csum_offset=0)の場合には約 32~64B のヒープメモリリークについて言及します。

攻撃シナリオ

シナリオ A: IHL の破壊 → ヒープメモリリーク(CVSS 9.3)

python3 CVE-2026-99999_pwnescape.py --simulate -n 1 -c 0

csum_start=0, csum_offset=0 → 書き込みが IHL バイトに到達 → IHL 5→15 → ip_do_fragment() は 20B しか存在しないのに 60B を読み取る → フラグメントごとに 約 32~64B のヒープメモリが漏洩。

シナリオ B: Flags/FragOffset の破損 → 再組み立ての妨害

python3 CVE-2026-99999_pwnescape.py --simulate -n 1 -c 6

csum_start=0, csum_offset=6 → 書き込みが Flags/FragOffset バイトに到達 → フラグメント再構築メタデータが破損 → フラグメント再構築が失敗。


検証とコードレビュー

この PoC は独立してレビューされています。主な所見:

  • 攻撃チェーンのロジックは完全に正確; IP ヘッダーレイアウト (RFC 791) を検証済み
  • 入力検証は完全; エッジケースでもクラッシュなし
  • ネットワーク I/O なし; 完全にオフラインで動作; root 権限不要
  • NVD の説明および CVSS 9.3 評価と一致
  • 総合レビュースコア: 8.7/10 — 教育用途として本番利用可能。

完全な技術レビューレポートはセキュリティ上の理由から内部リポジトリ (CVE-2026-99999-internal) に保管されています。


緩和策

  • kernel.org の安定版ツリーからカーネルセキュリティパッチを適用する
  • 5.10.272+、5.15.223+、6.1.190+、6.12.113+ 以降にアップグレードする
  • KVM/QEMU ホスト上の virtio-net 設定を監査する; 不要な場合は TAP ブリッジングを無効化する
  • 可能な場合は TAP ブリッジングの代わりに virtio-net 準仮想化を使用する

パッチ適用状況を確認:

# Check if your kernel has the fix (look for commit 6785011f8b16abf40b1e9d8b2)
cat /proc/config.gz 2>/dev/null | zcat | grep CONFIG_IPV4
# Or check dmesg for related errors after heavy network activity from a VM

参考文献

  • NVD: nvd.nist.gov/vuln/detail/CVE-2026-99999
  • Kernel.org 修正コミット: 6785011f8b16abf40b1e9d8b2 (stable ツリー), f43798c27684 (mainline)
  • LKML: Michael S. Tsirkin <[email protected]> パッチシリーズ
  • Linux カーネルソース: git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git

法的免責事項

このツールは、隔離されたラボ管理環境における認可されたセキュリティ研究および教育のみを目的としています。

  • 所有していない、または書面によるテスト許可を持たないシステムに対してこのツールを使用しないでください。
  • コンピュータシステムへの不正アクセスは、ほとんどの法域で違法です。
  • 作者は、このツールの悪用について一切の責任を負いません。

変更履歴

  • v5.0 — 機能しない TAP エクスプロイトパスを削除; デフォルトを csum_offset=0 (IHL/OOB 読み取りパス) に変更; デッドコードを整理; 詳細なレビューレポートを内部リポジトリへ移動; SEO 向けに README を書き直し。
  • v4.1 — csum_offset のロジックを修正; デフォルトを OOB 読み取りパス (-c 0) に変更; --csum-offset CLI フラグを追加; 壊れていた --tap パスを削除。
  • v4.0 — 書き直し: PF_PACKET パス + --simulate モード; IP ヘッダーのバイト レイアウトを修正。
  • v2.0 — 検証: stop_req レース、ソケットリーク、入力ガードを修正。
  • v1.0 — 初期 PoC (フラグメント化パケット、チェックサム修正順序のバグ)。
ツールをダウンロード