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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
cve-2022-46395-qemu — QEMUベースのラボで、Arm Mali r36p0 GPUドライバにおけるCVE-2022-46395の競合状態を再現します。PoC、ビルドスクリプト、およびローカルの脆弱性研究と回帰テストのためのinitramfsパッケージを含みます。 | Kitploit
ツール/GitHubGitHub/gao-zuin/cve-2022-46395-qemu
脆弱性分析エクスプロイトファジング学習と教育バイナリエクスプロイトラボと実践
GitHubgao-zuin/cve-2022-46395-qemu

cve-2022-46395-qemu

QEMUベースのラボで、Arm Mali r36p0 GPUドライバにおけるCVE-2022-46395の競合状態を再現します。PoC、ビルドスクリプト、およびローカルの脆弱性研究と回帰テストのためのinitramfsパッケージを含みます。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2022-46395 QEMU r36p0 ラボ

このリポジトリは、Arm Mali r36p0 ドライバ系列に対する CVE-2022-46395 のポータブルトリガ条件を再現するための QEMU/no-Mali ラボです。

このラボはローカルでの脆弱性研究と回帰テストを目的としています。元のエクスプロイトに含まれていた Pixel 固有の権限昇格ペイロードは含まれていません。LAB_QEMU モードでは、ソフトイベント/ユーザバッファの競合ウィンドウに到達したことを示した後、PoC は停止します。

リポジトリ構成

  • poc/: QEMU に適合させた CVE-2022-46395 PoC。Android のログ出力とプロパティ呼び出しを置き換え、LAB_QEMU 下では Pixel カーネルテキストパッチを無効化。
  • src/google-gpu-raviole-android13/: android.googlesource.com/kernel/google-modules/gpu からの Google Pixel GPU モジュールソース、ブランチ android-gs-raviole-5.10-android13。含まれる mali_kbase/Kbuild によりドライバは r36p0-01eac0 と識別されます。
  • scripts/: ビルド、initramfs パッケージ、QEMU 起動、ワンショット再現のヘルパースクリプト。
  • docs/: ローカル分析ノートと再現レポート。
  • logs/: ローカルでの成功実行からの選択された証拠ログ。
  • 生成されたバイナリ、initramfs アーカイブ、オブジェクトファイル、およびほとんどのランタイムログは Git で無視されます。以下のスクリプトを使用してローカルで再ビルドしてください。

    ホスト要件

    スクリプトは以下の環境で使用されました:

    • bash、make、gcc、file、cpio、gzip、modinfo
    • /bin/busybox にある busybox
    • qemu-system-x86_64
    • 外部モジュールをビルドできる、準備済みの Linux 5.10 x86_64 KASAN カーネルツリー

    デフォルトでは、スクリプトはカーネルツリーとブートイメージを以下の場所に期待します:

    root@kitploit:~
    ../build/linux-5.10-kasan
    ../build/linux-5.10-kasan/arch/x86/boot/bzImage
    

    これらのパスは KDIR と KERNEL_IMAGE でオーバーライドできます。

    再現手順

    リポジトリをクローンして移動します:

    root@kitploit:~
    git clone https://github.com/Gao-Zuin/cve-2022-46395-qemu.git
    cd cve-2022-46395-qemu
    

    ビルド/パッケージ/起動の全フローを実行します:

    root@kitploit:~
    MAX_ATTEMPTS=2000 ./scripts/reproduce.sh
    

    KASAN カーネルがデフォルトの兄弟ディレクトリ ../build にない場合:

    root@kitploit:~
    KDIR=/path/to/linux-5.10-kasan \
    KERNEL_IMAGE=/path/to/linux-5.10-kasan/arch/x86/boot/bzImage \
    MAX_ATTEMPTS=2000 \
    ./scripts/reproduce.sh
    

    ローカルでの成功実行では以下のタイミングを使用しました:

    root@kitploit:~
    MAX_ATTEMPTS=2000 UNMAP_OFFSET_NS=-800000 ./scripts/reproduce.sh
    

    より詳細な試行ログを取得するには:

    root@kitploit:~
    MAX_ATTEMPTS=2000 VERBOSE_ATTEMPTS=1 UNMAP_OFFSET_NS=-800000 \
      ./scripts/reproduce.sh
    

    手動手順

    ワンショットスクリプトは以下の手順と同等です:

    root@kitploit:~
    ./scripts/build_r36p0_no_mali.sh
    ./scripts/build_poc.sh
    MAX_ATTEMPTS=2000 UNMAP_OFFSET_NS=-800000 ./scripts/package_initramfs.sh
    ./scripts/run_qemu.sh
    

    便利な環境変数:

    • KDIR: mali_kbase.ko のコンパイルに使用するカーネルビルドツリー
    • KERNEL_IMAGE: QEMU に渡す bzImage
    • QEMU_LOG: 出力ログのパス
    • QEMU_MEM: QEMU メモリサイズ、デフォルト 1536M
    • QEMU_SMP: QEMU CPU 数、デフォルト 3
    • MAX_ATTEMPTS: PoC の再試行制限、デフォルト 2000
    • UNMAP_OFFSET_NS: 競合タイミングオフセット、デフォルト -800000
    • VERBOSE_ATTEMPTS=1: 試行ごとの詳細を出力
    • KASAN_UAF_MODE=1: scripts/reproduce_kasan_uaf.sh で使用される KASAN UAF プローブオプションでモジュールをロード

    期待される証拠

    成功した実行では以下のような行が出力されます:

    root@kitploit:~
    mali mali.0: Kernel DDK version r36p0-01eac0
    r36p0-01eac0 (UK version 11.34)
    /dev/mali0
    finished reset: 703956220 fault: 682115150 68 err 0 read 3
    qemu lab mode: CVE-2022-46395 soft-event/user-buffer race reproduced
    qemu lab mode: reproduction completed after 17 attempts
    [init] PoC status: 0
    

    参考証拠ログ:

    root@kitploit:~
    logs/qemu-cve-2022-46395-r36p0-unmap-minus800us.log
    

    成功の鍵となる条件は err=0、read=3、fault < reset です。これは、no-Mali QEMU で r36p0-01eac0 に対する競合ウィンドウに到達したことを示します。

    注意事項

    • これは QEMU ラボトリガであり、完全なデバイスエクスプロイトチェーンではありません。
    • 元の Pixel 最終段階はハードコードされた ARM64 カーネルテキストオフセットに依存しており、ここでは意図的に使用していません。
    • QEMU が競合を再現せずに終了した場合は、MAX_ATTEMPTS を増やすか UNMAP_OFFSET_NS を調整して再実行してください。
    ツールをダウンロード