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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
asus-bsitf-0-day-poc — CVE-2026-13585 の PoC | Kitploit
ツール/GitHubGitHub/416rehman/asus-bsitf-0-day-poc
特権昇格脆弱性分析エクスプロイトハードウェアセキュリティバイナリエクスプロイト
GitHub416rehman/asus-bsitf-0-day-poc

asus-bsitf-0-day-poc

CVE-2026-13585 の PoC

リポジトリを見る
521ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
ウェブサイト

POC - ASUS bsitf.sys カーネルメモリマッピングのユーザーモードへの公開

CVE-2026-13585

概要

ASUS の bsitf.sys(AsusBSItf.sys としても配布)カーネルドライバは、攻撃者が制御するサイズの物理的に連続したカーネルメモリを割り当て、それを呼び出しプロセスのアドレス空間に読み取り/書き込みフルアクセスでマッピングし、ユーザーモード仮想アドレスと物理アドレスの両方を呼び出し元に返す IOCTL 0x222808 を公開しています。

このデバイスを開くには管理者権限が必要であり、これは管理者からカーネルへの権限昇格となります。BYOVD(Bring Your Own Vulnerable Driver)シナリオでは、既に管理者権限を持つ攻撃者(ソーシャルエンジニアリングや別のエクスプロイトによる)が、この正規に署名されたドライバをロードすることで、カーネルエクスプロイトを必要とせずに任意のカーネルメモリアクセスを得ることができます。

影響を受けるバージョン

バージョンファイル名パッケージプールタイプ
3.0.10.0bsitf.sysASUS Business Manager / AbmSvcPackageNonPagedPool(実行可能)
3.1.10.0AsusBSItf.sysASUS SCI / AsusSoftwareManagerNonPagedPoolNx
3.1.25.0AsusBSItf.sysASUS SCI / AsusSoftwareManagerNonPagedPoolNx

すべてのバージョンで、デバイス \Device\bsitf とシンボリックリンク \DosDevices\bsitf が作成されます。

影響

マッピングされるバッファは新たなカーネルプール割り当てであり、任意のカーネルアドレスではありません。呼び出し元はその内容を制御できますが、位置は制御できません。これにより、真の任意カーネルR/Wと比較してエクスプロイトの可能性が制限されます。

  • カーネルプールの枯渇(DoS) — 解放せずに繰り返し割り当てを行うと、NonPagedPool が枯渇し、BSOD を引き起こします。サイズ上限や割り当て制限は適用されていません。
  • 物理アドレスの開示 — IOCTL はすべての割り当ての物理アドレスを返し、情報漏洩や DMA ベースの攻撃に役立ちます。
  • 実行可能カーネルメモリのステージング(v3.0.x のみ) — バージョン 3.0.10.0 では、プールタイプは NonPagedPool(実行可能)です。シェルコードをユーザーモードからマッピングされたバッファに書き込むことができますが、カーネルの実行をバッファアドレスにリダイレクトするには別の脆弱性が必要です。

v3.1.x バージョン(NonPagedPoolNx)では、バッファは実行不可能であり、実質的な影響は DoS と物理アドレスの開示に限定されます。

根本原因

ディスパッチハンドラ内の IOCTL 0x222808 は、入力検証なしで次の処理を実行します。

root@kitploit:~
alloc_size = *(DWORD *)Irp->AssociatedIrp.SystemBuffer;  // user-controlled

kernel_va = MmAllocateContiguousMemory(alloc_size, 0xffffffff);
mdl = IoAllocateMdl(kernel_va, alloc_size, FALSE, FALSE, NULL);
MmBuildMdlForNonPagedPool(mdl);
user_va = MmMapLockedPages(mdl, UserMode);

output[0] = user_va;        // usermode virtual address
output[1] = physical_addr;  // physical address of allocation

割り当てサイズ、未処理の割り当て数、または入力検証に関するチェックはありません。デバイスを開くには管理者権限が必要ですが、ハンドルを取得した後は IOCTL に制限はありません。

概念実証

ビルド

root@kitploit:~
cargo build --release

ドライバのロード

root@kitploit:~
sc create bsitf binPath= "C:\path\to\bsitf.sys" type= kernel
sc start bsitf

実行

root@kitploit:~
# default: 0x1000 (4KB) allocation
cargo run --release

# custom size (hex)
cargo run --release -- 10000

期待される出力

root@kitploit:~
[*] bsitf.sys kernel memory mapping PoC
[*] target alloc size: 0x1000

[+] device handle acquired

[*] allocating 0x1000 bytes of kernel memory via IOCTL 0x222808
[+] kernel allocation succeeded:
    usermode VA:     0x000001D856F90000
    physical addr:   0x00000000BF6CB000

[*] original contents (first 16 bytes):
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

[*] writing 0xCC pattern (int3 sled)...
[+] readback: usermode R/W CONFIRMED

[*] freeing kernel mapping via IOCTL 0x22280C
[+] mapping freed successfully

Windows 11 24H2 でテスト済み(管理者権限が必要)。

修復策

  1. 合理的な上限で割り当てサイズを検証する
  2. ハンドルごとの未処理の割り当て数を制限する
  3. カーネル割り当てをユーザーモードアドレス空間にマッピングしない
  4. 物理アドレスをユーザーモードの呼び出し元に返さない
  5. すべてのバージョンで NonPagedPoolNx を使用する

タイムライン

日付イベント
2026-04-06自動分析による脆弱性の発見
2026-04-06Windows 11 24H2 での PoC 確認
2026-04-06ASUS PSIRT への報告の提出

参考情報

  • CWE-782: 不十分なアクセス制御による露出したIOCTL
  • デバイス: \Device\bsitf、シンボリックリンク: \DosDevices\bsitf
  • ディスパッチハンドラ: FUN_140001070

免責事項

この概念実証は、認可されたセキュリティ研究および責任ある開示の目的のみで提供されています。あなたが所有していない、または明示的なテスト許可を得ていないシステムに対しては使用しないでください。

ツールをダウンロード