Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-59346-POC — CVE-2026-59346 の PoC - VMware の VMXNET3 TSO セグメンテーションパスにおける 32 ビット整数オーバーフロー、ゲストからホストへのクラッシュ。 | Kitploit
ツール/GitHubGitHub/0xcyberstan/cve-2026-59346-poc
脆弱性分析エクスプロイトセキュリティ仮想化ハードウェアとIoTセキュリティ論文と研究バイナリエクスプロイト
GitHub0xcyberstan/cve-2026-59346-poc

CVE-2026-59346-POC

CVE-2026-59346 の PoC - VMware の VMXNET3 TSO セグメンテーションパスにおける 32 ビット整数オーバーフロー、ゲストからホストへのクラッシュ。

リポジトリを見る
22時間3分前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-59346 — VMXNET3 TSO 整数オーバーフロー (VMware Workstation / Fusion)

vmware-vmx 内の VMXNET3 仮想 NIC の TSO セグメンテーションパスにおける 32 ビット整数オーバーフローの概念実証 (PoC) であり、ゲスト VM から到達可能です。

この問題は修正済みです。 この PoC は研究および防御目的のみで公開されています。ホスト側のクラッシュ (SIGSEGV) を引き起こすものであり、コード実行を試みるものではありません。

CVECVE-2026-59346
Writeupcyberstan.co.uk/vmxnet3-tso-overflow
ZDI advisoryZDI-26-647
Vendor advisoryVMSA-2026-0007
CVSSv39.3 (vendor) / 7.5 (ZDI)
Fixed inWorkstation / Fusion 26H1u1
Reported viaTrend Micro Zero Day Initiative

概要

VMXNET3 の TSO セグメンテーションルーチンは、割り当てサイズを 32 ビットの imul を用いて seg_count * per_seg_size として計算します。真の積が 2^32 を超えると結果がラップアラウンドし、アロケータは切り詰められた値を受け取ります。続くセグメンテーションループは割り当てサイズではなく seg_count によって駆動されるため、ラップアラウンドした積から算出されたサイズのバッファに対して、セグメントごとに per_seg_size バイトを書き込みます。

このコードパスに対する以前の修正 (CVE-2025-41236) では、MSS、per_seg_size、またはその合計が 9216 を超えるパケットを拒否する境界チェックが追加されました。これらのチェックは個々のディスクリプタフィールドを制約しますが、実際にラップアラウンドする値である積を制約することはありません。9216 の制限をはるかに下回るパラメータでも、依然としてオーバーフローに到達します。

完全な根本原因分析、注釈付き逆アセンブリ、ヒープジオメトリについてはこちらをご覧ください: cyberstan.co.uk/vmxnet3-tso-overflow。

影響

生の TX ディスクリプタを書き込むのに十分な権限を持つゲストユーザーは、ゲストが提供したパケットの内容を用いて、ホストの vmware-vmx プロセス内で大規模な範囲外書き込みを引き起こす可能性があります。この PoC では、書き込みは未マップメモリに到達するまで続き、ホストプロセスが SIGSEGV で終了し、VM が電源オフになります。

ベンダーはこの問題をハイパーバイザコンテキストでの任意コード実行を可能にするものと評価していますが、公開された PoC はメモリ安全性の違反のみを実証し、クラッシュで停止します。

影響を受ける製品

vmware-vmx の VMXNET3 バックエンドを共有するすべての VMware デスクトップハイパーバイザ製品: Workstation、Fusion、および Player。VMXNET3 はモダンなゲストのデフォルトアダプタです。正式な影響バージョンリストについては VMSA-2026-0007 を参照してください。

ビルドと実行

この PoC は ゲスト内 で動作する Linux カーネルモジュールです。カーネル内ドライバの TSO ロジックをバイパスして VMXNET3 の TX リングディスクリプタを直接書き込み、その後ドアベル MMIO レジスタを叩きます。

root@kitploit:~
# Inside the guest VM, as root:

# Kernel headers
apk add linux-virt-dev                        # Alpine
# apt install linux-headers-$(uname -r)       # Debian / Ubuntu

make
insmod vmxnet3_tso_trigger.ko

ホストの vmware-vmx プロセスがクラッシュし、ゲストは電源オフになります。VM 内の未保存の状態は失われると想定してください。再実行したい場合は、事前にスナップショットを取得してください。

開始する前に

ゲストには VMXNET3 アダプタが必要です。lspci | grep -i vmxnet で確認するか、.vmx ファイル内の ethernet0.virtualDev = "vmxnet3" を確認してください。このモジュールは NIC と直接通信するため、インターフェースが起動しており vmxnet3 ドライバにバインドされている必要があります。

モジュールパラメータ

ParameterDefaultPurpose
ifnameeth0VMXNET3 アダプタにバックアップされたインターフェース
dryrun01 はディスクリプタを書き込みますがドアベルをスキップするため、何もトリガーされません
wait_ms0ディスクリプタ設定とドアベル書き込みの間の遅延 (ミリ秒)
txwarm0オーバーフローパケットの前にリングを通す TSO パケット
warmup0トリガー前に発行するホスト側の割り当て
freechunk0トリガー前に作成し部分的に解放する同サイズの割り当て

warmup と freechunk は、オーバーフローが発生する前にホストヒープを整形します。クラッシュを再現するために必須ではありません。割り当てレイアウトを調査している場合を除き、ゼロのままにしてください。

推奨される手順

まずドライランで、ホストに触れることなく、モジュールがリングを見つけてパラメータを計算することを確認します:

root@kitploit:~
insmod vmxnet3_tso_trigger.ko dryrun=1
dmesg | tail -20
rmmod vmxnet3_tso_trigger

期待される出力には、計算されたジオメトリと特定された TX リングが含まれます:

root@kitploit:~
tso_v8: per_seg=6240 (0x1860), HDR_TOTAL=6222, MSS=1
tso_v8: PARAMS: alloc=... overflow=... seg_count=... paylen=...
tso_v8: ring at priv+N: base=... sz=... n2f=... gen=...
tso_v8: DRYRUN -- descriptors written but NOT triggered

リングが見つからない場合、モジュールは TX ring not found をログに記録して中止します。これは通常、ドライバのレイアウトの違いを意味します。そのカーネルに合わせて find_tx_ring() の検索ヒューリスティックを調整する必要があります。

次に、必要に応じて非デフォルトのインターフェースで実際にトリガーします:

root@kitploit:~
insmod vmxnet3_tso_trigger.ko ifname=eth1

ゲストはホストプロセスとともに停止するため、最後のメッセージがディスクに到達しない可能性があります。それらをキャプチャするには、ジャーナルに頼るのではなくコンソールを監視してください:

root@kitploit:~
dmesg -w

ホスト側で VM の vmware.log を確認してクラッシュを確認します。vcpu-0 スレッド上のアロケータを通るバックトレースとともに PANIC: Unexpected signal: 11 が表示されます。

何も起こらない場合

  • 修正済みのホスト。 26H1u1 以降ではパケットが拒否されます。モジュールは正常にログを記録し、VM は動作し続けます。
  • 誤ったインターフェース。 ifname はブリッジやセカンダリ e1000 アダプタではなく、VMXNET3 デバイスを指定する必要があります。
  • リングが小さすぎる。 TX リングがディスクリプタチェーンを保持できない場合、モジュールは need N entries but ring has M slots で中止します。

テスト済み環境

HostUbuntu 24.04 LTS, kernel 6.17.0, glibc 2.39
HypervisorVMware Workstation Pro 25.0.1 (build 25219725)
GuestAlpine Linux, kernel 6.12, VMXNET3 NIC

分析で参照されているシンボルオフセットはビルド 25219725 に固有のものです。脆弱なパターンはビルド間で同じですが、オフセットは異なります。

内容

root@kitploit:~
vmxnet3_tso_trigger.c   trigger module
Makefile                   out-of-tree kernel module build

修正

乗算は 64 ビットで実行し、結果がアロケータに到達する前に境界を設ける必要があります。オーバーフローはどちらかのオペランドではなく積の性質であるため、個々のディスクリプタフィールドを制限するだけでは不十分です。

開示タイムライン

DateEvent
2026Trend Micro ZDI に報告
Sept 2026Broadcom により 26H1u1 で修正 (VMSA-2026-0007)
Sept 2026ZDI-26-647 公開

使用

修正がリリースされた後、協調的開示の下で公開されています。所有しているか、テストを許可されているシステムに対してのみ実行してください。ホストのハイパーバイザプロセスをクラッシュさせるため、気にかけているものに対して実行しないでください。

著者

Stan S - cyberstan.co.uk · @0xCyberstan

ツールをダウンロード