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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
vbox-lsilogic-sas-config — VirtualBox 7.2.20 - 重大 - ローカル - 型混同 / 任意読み書き - SAS1068 CONFIG SCSI-SPI オーバーレイ | Kitploit
ツール/GitHubGitHub/abraxas/vbox-lsilogic-sas-config
メモリフォレンジック脆弱性分析エクスプロイトリバースエンジニアリングセキュリティ仮想化論文と研究バイナリエクスプロイト
GitHubabraxas/vbox-lsilogic-sas-config

vbox-lsilogic-sas-config

VirtualBox 7.2.20 - 重大 - ローカル - 型混同 / 任意読み書き - SAS1068 CONFIG SCSI-SPI オーバーレイ

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

人気

すべて見る →

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

すべてのツールを探索

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

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

Abraxas Labs - vbox-lsilogic-sas-config

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  vbox-lsilogic-sas-config

vbox-lsilogic-sas-config

クラス: 型混同 / 任意 R/W 到達範囲: ローカル (ゲスト)

Oracle VM VirtualBox OSS 7.2.20 (f2792cf44f663989818507e36d3db5f978523c5e)

SAS1068 MPT CONFIG は SCSI-SPI Port 0 を 12 バイトのページとして扱う。SAS 上では、そのページは union のもう半分である: pManufacturingPage7 と cbManufacturingPage7。ゲストの CONFIG READ はヒープポインタを DMA リークする。CONFIG WRITE はポインタとサイズを植え付ける。その後、Manufacturing page 7 が植え付けられたポインタを経由してコピーする。

接続された SAS1068 (PDM LsiLogicSas、PCI 1000:0054) 上のゲスト ring3 は、VM プロセス内で任意の読み書きを取得する。 これは VirtualBoxVM / VBoxHeadless のヒープであり、ホストカーネルエスケープではない。

IDCVE 未割当
クラス型混同 / 任意 R/W
到達範囲ローカル (ゲスト)
CWECWE-843, CWE-822
CVSSCritical: 8.8 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
製品VirtualBox OSS
影響を受けるバージョン7.2.20 (f2792cf44)
必要条件接続された SAS1068 (PDM LsiLogicSas、PCI 1000:0054)
ライセンスGNU Affero GPL v3.0
ラボループバックソースハーネス

攻撃者ができること

手法: ゲスト ring3 は SAS1068 の MMIO ドアベルまたはリクエスト FIFO を MPT_MESSAGE_HDR_FUNCTION_CONFIG (0x04)、ページタイプ SCSI-SPI Port 0 (0x03) でプログラムする。ディスパッチは常に SPI ゲッターを呼び出す。SAS でゲートされるのは EXTENDED のみである。ページ属性ゲッターはコメントアウトされているため、Readonly Port 0 ページは依然として書き込み可能である。SPI Port 0 は 12 バイトでパックされ、SasPages.pManufacturingPage7 (8) と cbManufacturingPage7 (4) にオーバーレイする。

権限種別状態得られるもの
CONFIG SCSI-SPI Port 0 READ偵察ラボ実証済みVM プロセスのヒープポインタ pManufacturingPage7 とそのサイズをゲスト RAM へ DMA する。ASLR の入力。
CONFIG SCSI-SPI Port 0 WRITE完全性ラボ実証済みゲストが選んだポインタとサイズをそれらの SAS フィールドに植え付ける
manufacturing page 7 CONFIG READ完全性ラボ実証済み植え付けられたアドレスからゲスト GPA へホストのバイト列をコピーする (VBOX-LSILOGIC-SAS-CONFIG-WITNESS)
manufacturing page 7 CONFIG WRITE完全性同じゲッターから推測ゲストのバイト列を植え付けられたアドレスへコピーする (VirtualBoxVM 内での任意書き込み)
Port 1 / Device 0 SPI ページ偵察 / 完全性オーバーレイを推測Port 1 は pSASIOUnitPage0 をリーク/植え付けする; Device 0 page 0 は paPHYs に到達する; Device 0 page 1 は pSASDeviceHead に到達する
任意の植え付けられたポインタ可用性推測次回の SAS ページアクセス時、または lsilogicR3ConfigurationPagesFree 時に VM プロセスをクラッシュさせる

隣接するクローズ済み項目:

  • ホストカーネル
  • 他の VM
  • VBoxSVC
  • デフォルトの Windows ゲスト LSI53C1030 SPI (SpiPages が実際のレイアウトである; この型混同には SAS1068 が必要)
  • SPI コントローラ上の SAS EXTENDED ページ (VERR_NOT_FOUND)
  • Windows のハードニングトークン / AppContainer (これは VM プロセスのヒープであり、サンドボックスバイパスではない)

これは VM プロセスの任意 R/W であり、ホストカーネルエスケープではない。完全なホストユーザー権限には依然としてハードニングの残存物が必要である。私はこれを残っている 3D 書き込みと組み合わせなかった: VMSVGA DX11 UAF (d691aa68) はこのピンではクローズ済みである。

Guest Additions なし。3D なし。VRDP なし。PUEL ではない。敵対的ゲスト ring3 で十分である; 同梱の mpt/mptsas ドライバは不要である。

発見の経緯

2026年9月のCPU後、私はOSS 7.2.20上でLsiLogic MPT CONFIGを調査しました。2026年のサイレントなreply-stackリークはすでに修正済みです。122c6880はSCSI I/Oエラー時にMptReplyUnionをRT_ZEROします。私はそのシンクではなく、その類の残存物を探していました。

残存物はスタックのreplyではなく、unionです:

union {
    MptConfigurationPagesSpi SpiPages;
    MptConfigurationPagesSas SasPages;
} u;  /* DevLsiLogicSCSI.h:3323 */

SAS alloc は SasPages ホストポインタを埋め、SPI ページ初期化を一切実行しません。DevLsiLogicSCSI.cpp:2795 の SPI Port ゲッターには enmCtrlType チェックがありません。CONFIG ディスパッチの SPI ケースはゲートされていません。ページ属性ゲッターは cpp:3159 でコメントアウトされています。cpp:2701 の Manufacturing page 7 は SAS でゲートされており、これが意図された経路ですが、pManufacturingPage7 を NULL チェックなしで参照解除します。これにより、SPI 型の Port 0 READ/WRITE が SAS ポインタリークおよび plant になる仕組みです。

すでに記録済みの誤った方向性: 122c6880 の再提出; デフォルトの LSI53C1030 をこのバグとみなすこと; ワイルドポインタクラッシュをホストカーネルエスケープに誇張すること; パック済みオーバーレイで十分なのにライブ VM を使うこと。見せかけ: リバースシェル。オラクルは CONTROL ダミーページデータであり、その後 VBOX-LSILOGIC-SAS-CONFIG-WITNESS のリーク/plant/arb-read です。

ラボ

cd lab
./run.sh

または python3 vbox-lsilogic-sas-config-Abraxas-Labs.py。pin 構造体のソースハーネス。VirtualBox は起動されません。Compose プロジェクト vbox-lsilogic-sas-config、network_mode: none。何もバインドしません。

CONTROL: SPI 型の Port 0 オーバーレイ読み取りはダミーページデータであり、製造ページ 7 のヒープポインタではありません。

SAS の混同: Port 0 READ は calloc に一致する pManufacturingPage7 をリークします。Port 0 WRITE は 2 つ目のウィットネスバッファのポインタ+サイズを植え付けます。製造ページ 7 のゲッターと CONFIG READ がウィットネスをゲストの GPA 配列にコピーします。

SUCCESS vbox-lsilogic-sas-config leak=yes plant=yes arb-read=yes VBOX-LSILOGIC-SAS-CONFIG-WITNESS

修正

SCSI-SPI ページタイプを enmCtrlType == LSILOGICCTRLTYPE_SCSI_SPI でゲートする。Readonly Port 0 が読み取り専用のままになるよう、ページ属性チェックを復元する。pManufacturingPage7(およびその他の SAS ポインタ)を逆参照する前に NULL チェックする。SpiPages と SasPages を単一の union で重ね合わせるのをやめる。

参考資料

  • github.com/VirtualBox/virtualbox タグ v7.2.20 (f2792cf44f663989818507e36d3db5f978523c5e)
  • DevLsiLogicSCSI.h 3323 行目の union、2251 行目の SPI Port 0 サイズ 12
  • DevLsiLogicSCSI.cpp 619 行目の SAS 割り当て、2701 行目の manufacturing ゲッター、2795 行目の SPI Port ゲッター、3159 行目でコメントアウトされたページ属性、3293 行目の CONFIG READ/WRITE
  • クローズ済みの類似コミット(本件のシンクではない): 122c6880(MptReplyUnion SCSI I/O エラースタック)
ツールをダウンロード