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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
qemu-xhci-complete-uaf — QEMU 11.1.2 - 高 - ローカル - UAF - xhci_complete は CVE-2026-17588 の doorbell DMA の残存 | Kitploit
ツール/GitHubGitHub/abraxas/qemu-xhci-complete-uaf
メモリフォレンジック脆弱性分析エクスプロイト論文と研究バイナリエクスプロイトラボと実践
GitHubabraxas/qemu-xhci-complete-uaf

qemu-xhci-complete-uaf

QEMU 11.1.2 - 高 - ローカル - UAF - xhci_complete は CVE-2026-17588 の doorbell DMA の残存

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

人気

すべて見る →

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

すべてのツールを探索

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

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

Abraxas Labs - qemu-xhci-complete-uaf

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  qemu-xhci-complete-uaf

qemu-xhci-complete-uaf

QEMU v11.1.2 (4fc49f46dc95d4a27de2509e7fceb2931e91faeb) - qemu-xhci

クラス: UAF(ヒープ use-after-free)。到達範囲: ローカル(ゲスト)。

xhci_complete は CVE-2026-17588 の残骸である。11.1.2 のパッチは 2 つの xHCI タイマーを保護している。しかし非同期 USB complete パスは保護していない。イベントリングをドアベル BAR に向けたゲストは、xhci_complete からドアベル 0 に 16 バイトの TRB を DMA 書き込みさせることができ、その時点で TYPE_XHCI の mem_reentrancy_guard はすでにクリアされている。この書き込みが xhci_process_commands を実行する。用意された CR_DISABLE_SLOT が、xhci_complete がまだ保持しているライブな XHCITransfer を解放する。

q35 は qemu-xhci を同梱している。このラボにおけるバルクの相棒は usb-uas である。同じ complete コールバックは usb-storage、usb-redir、usb-host からも到達可能である。

qemu-xhci 上のゲストカーネルと非同期バルクデバイスの組み合わせにより、QEMU プロセスのヒープを UAF させることができる。

IDCVE 未割当
CWECWE-416
CVSSHigh: 8.2 CVSS:3.1/AV:L/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H
製品QEMU
影響を受けるバージョンv11.1.2 (4fc49f46)
認証qemu-xhci(q35 のデフォルト)上のゲストカーネルと USB_RET_ASYNC バルク
ライセンスGNU Affero GPL v3.0
ラボ127.0.0.1:18700 qtest のみ

攻撃者ができること

誰が: 信頼されていないゲストカーネル(または USB パススルーのピア)。ゲストからホストへ。QEMU ユーザースペースのヒープ。

整合性(ラボで実証済み)

手法シンク権限
ゲストの ERST / ERDP をドアベル BAR に設定し、その後非同期 UAS completexhci_complete hw/usb/hcd-xhci.c:3282-3295 -> xhci_write_event DMA外側の complete がまだ保持している XHCITransfer に対する ASan heap-use-after-free。CR_DISABLE_SLOT はドアベルの再入から取得される。
同じパス、xhci_ep_nuke_xfers / xhci_ep_free_xferg_free(xfer)ライブなトランスファとエンドポイントコンテキストの解放。complete の後に再度解放されるとダブルフリーになる。

可用性(ラボで実証済み)

ASan 下で QEMU プロセスが abort する。ASan なしでは、これはハイパーバイザプロセス内のライブなヒープ UAF である。ゲストからホストへのクラッシュ、および解放された XHCITransfer の再利用が推測される。

偵察

qemu-xhci を列挙する以外に必要なものはない。q35 のデフォルトに含まれている。

閉じたままの隣接する攻撃面

  • CVE-2026-17588 のタイマーパス: xhci_mfwrap_timer と xhci_ep_kick_timer は xhci->parent.mem_reentrancy_guard を設定する。このピンでは閉じている。
  • EHCI の非同期 complete: FINISHED をマークし、ガードされた BH をスケジュールする。USB complete コールバックからイベントリングを書き込むことはない。
  • UAS オブジェクトの UAF(CVE-2021-3713 クラス): status BH は UAS の DeviceState 上でガードされている。残っているのはイベントリング DMA を経由した xHCI オブジェクトであり、UAS オブジェクトの 2021 年の n-day ではない。
  • HID の NAK リトライ: これは kick タイマーであり、現在はガードされている。
  • ゲスト root による assert と無制限の RNDIS アロケーション: ハードニングであり、このクラスではない。

このラボは RIP 制御やゲストからホストへのシェルを実証するものではない。クラスは QEMU プロセスのヒープ UAF である。

発見の経緯

CVE-2026-17588 をクローズしたタグであり、現行の GA でもあるため、v11.1.2 をピン留めした。hw/usb/hcd-xhci.c に腰を据え、パッチが見落としたイベントリングの書き込み元はどれかを問うた。

タイマーは TYPE_XHCI ガードを取得する。xhci_complete は取得しない。EHCI は 2021 年にはすでにこのクラスを BH に遅延させていた。xHCI は今も USB complete コールバックから DMA を書き込んでいる。

誤った方向性:UAS ステータス BH で十分とみなすこと(これは UAS を保護するもので、xHCI ではない);HID NAK を待つこと(タイマー、すでにパッチ済み);qtest ドアベル + usb-uas の代わりに実際のゲストカーネルを求めること。

ラボ

cd lab
./run.sh

対象は 127.0.0.1:18700(qtest)と 127.0.0.1:18701(QMP)のみ。Pin は github.com/qemu/QEMU のタグ v11.1.2 / 4fc49f46 からクローン。ASan ビルド。ループバック。Witness 専用。

SUCCESS qemu-xhci-complete-uaf how=ERROR: AddressSanitizer: heap-use-after-free erst=doorbell async=1 success=1 disable-slot-fetch=1 QEMU-XHCI-COMPLETE-UAF-WITNESS

リプレイ: python3 qemu-xhci-complete-uaf-Abraxas-Labs.py。

修正

既存の2つのタイマーと同様に、xhci_complete 全体で xhci->parent.mem_reentrancy_guard を有効にする。あるいは、EHCI と同様に xhci_try_complete_packet / xhci_kick_epctx を TYPE_XHCI で保護された BH に遅延させる。いずれの方法でも、ガードが解除された状態でイベントリングへの DMA 書き込みが実行されてはならない。

参考資料

  • github.com/qemu/QEMU タグ v11.1.2 コミット 4fc49f46dc95d4a27de2509e7fceb2931e91faeb
  • xhci_complete
  • 近接する修正済み項目(本パスではない): CVE-2026-17588 xHCI タイマーの再入
  • 同一ピン: qemu-nvme-sgl-bar · qemu-colo-l4-oob
  • シリーズ: QEMU 11.1.2 leftovers
  • CWE-416

ライセンス

GNU Affero GPL v3.0。LICENSE を参照。ループバックラボ専用。保証なし。

ツールをダウンロード