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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-2796-and-CVE-2026-2768-escape-the-wasm-box — 完全なFirefoxチェーン: CVE-2026-2796 wasm型混乱 -> コンテンツプロセスRCE、さらにCVE-2026-2768 親プロセスエスケープ分析 (いずれもFirefox 148で修正済み) | Kitploit
ツール/GitHubGitHub/sneakynachos/cve-2026-2796-and-cve-2026-2768-escape-the-wasm-box
脆弱性分析エクスプロイトウェブセキュリティバイナリエクスプロイト
GitHubsneakynachos/cve-2026-2796-and-cve-2026-2768-escape-the-wasm-box

CVE-2026-2796-and-CVE-2026-2768-escape-the-wasm-box

完全なFirefoxチェーン: CVE-2026-2796 wasm型混乱 -> コンテンツプロセスRCE、さらにCVE-2026-2768 親プロセスエスケープ分析 (いずれもFirefox 148で修正済み)

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-2796 + CVE-2026-2768 — Escape the Wasm Box

Firefox のフルチェーン悪用研究: レンダラープロセスでのコード実行のための WebAssembly 型混乱 (type confusion) を、サンドボックスエスケープのための親プロセスバグへ連鎖させる。いずれのバグも Firefox 148 (MFSA-2026-13) で修正済み。ここでのターゲットは、両方の修正に先行する Firefox 148-nightly ツリー @ 2fbc0748c4 (2026-01-14)。

  • CVE-2026-2796 (Bug 2013165): SpiderMonkey の WebAssembly import 最適化における JIT 誤コンパイル / シグネチャ型混乱。
  • CVE-2026-2768 (Bug 2014101): サンドボックスエスケープ — 検証されていない IPC データが 親プロセス の IndexedDB コードで領域外書き込み (out-of-bounds write) を引き起こす。

チェーン構成

root@kitploit:~
page loads crafted wasm module
        │
CVE-2026-2796: Function.prototype.call.bind unwrap skips signature check
        │  → i64 ↔ (ref $t) confusion → addrOf/fakeobj
        │  → fake WasmArrayObject → arbitrary R/W in the CONTENT process
        │  → forged WasmFuncRef → hijack call target ([funcref+0x38])
        ▼
native code exec INSIDE the sandboxed content process  (sbLevel 3)
        │  (sandbox blocks exec/fork — need a parent bug)
        ▼
CVE-2026-2768: forge IndexedDB add/put IPC with out-of-range
        mAutoIncrementKeyOffsets (ParamTraits<Key> validates nothing)
        │  → parent writes 8 bytes at attacker-controlled offset
        ▼
memory corruption in the UNSANDBOXED parent process = full escape

実証内容

DemoWhereResult
poc/shell/poc-crash.jsjs shellfuncref としてデリファレンスされた 0xDEADBEEF → 0xdeadbf2f で SIGSEGV
poc/shell/poc-addrof.jsjs shell任意 R/W のセルフテストが成功
poc/shell/poc-forge.jsjs shellPC 制御: 仕込んだカナリアでクラッシュ
poc/shell/poc-rce.jsjs shellsystem("id > /tmp/CVE-2026-2796-PWNED; open -a Calculator") — ファイルに uid=501(sid) ... が含まれ、Calculator が起動する
poc/browser/stage1-browser.htmlNightly (sbLevel 3 content)サンドボックス化されたタブ内で任意 R/W。偽造した funcref が 0x4141414141414141 へジャンプ → タブはクラッシュするが親プロセスは生存
poc/browser/stage1-browser-cmd.htmlNightly (sbLevel 3 content)XUL ベースをリークし、posix_spawnp (0x187xxxxx) を解決して /bin/sh -c "touch /tmp/PWNED-FROM-CONTENT" で呼び出す → macOS サンドボックスが exec を拒否: ファイルは作成されず、ページにも影響なし — コンテンツ RCE だけではコマンド実行にならないことの証明
poc/browser/sandbox-proof.htmlNightly (sbLevel 3 content)サンドボックスルール内でのネイティブ実行: getpid() がタブの実 PID を返し (ps と一致)、生の libc write(1, ...) がブラウザのターミナルログに出力される — fork/exec なし、ファイルオープンなし
poc/browser/fd3-proof.htmlNightly (sbLevel 3 content)fd 3 (親プロセスの IPDL ソケット) に生の 32 バイトを書き込む: 親プロセスの IPC パーサーが攻撃者製バイトを消費し (Message needs unreceived descriptors ... num_handles:33)、メッセージを破棄してタブを強制終了する ("Exiting due to channel error") — ステージ 2 が整形式だが悪意ある IndexedDB メッセージで兵器化するトランスポートプリミティブ
poc/browser/stage2-trigger.htmlNightly親プロセスのバグ経路への純 JS での到達可能性 (オートインクリメントインデックスキー [1,2,3,4])

ステージ 2 の根本原因分析 (修正差分、IPC シリアライゼーション、悪用戦略) については docs/full-escape.md を参照。

脆弱なターゲットのビルド

root@kitploit:~
# Tree: mozilla-firefox/firefox @ 2fbc0748c4 (2026-01-14, pre-FF148)

# 1) js shell (stage-1 development, unsandboxed):
cd js/src && ../../configure --enable-debug --enable-optimize \
  --without-intl-api --enable-project=js && cd _obj && make -j8

# 2) full browser (stage 2). mozconfig:
#    export CC=/usr/bin/clang ; export CXX=/usr/bin/clang++
#    ac_add_options --enable-application=browser
#    ac_add_options --disable-debug --enable-optimize
#    ac_add_options --disable-crashreporter --disable-updater --disable-tests
#    ac_add_options --enable-sandbox
#    ac_add_options --without-wasm-sandboxed-libraries
# requires: node, cbindgen, rustc >= 1.87, macOS CLT SDK
# local build notes:
#  - private header sys/fileport.h shim added to objdir dist/include/sys/
#  - one compile guard added: NSGlassEffectView (macOS 26 SDK symbol) wrapped
#    in #if __MAC_OS_X_VERSION_MAX_ALLOWED >= 260000 in widget/cocoa/
#    nsCocoaWindow.mm (build-environment fix, no security impact)

ブラウザ PoC の実行: browser.dom.window.dump.enabled=true を設定したプロファイルで obj-browser/dist/Nightly.app を起動し、file:// 経由で HTML ファイルを開き、stdout の dump() 出力を確認する。タブのクラッシュは親プロセスのログに process <pid> exited on signal 10 として現れる。

オフセット (macOS arm64)

WasmArrayObject: numElements @+16、data ポインタ @+24、インラインデータ @+40。WasmFuncRef: typeDef ポインタ @+0x40、呼び出しターゲット @+0x38。JSFunction ネイティブポインタ @+0x20。js shell: os_system @ base+0x1a9f8、system GOT @ base+0x11d47b0。ブラウザ: WebIDL ネイティブコードポインタ (console.log JSFunction +0x20) から 0xfeedfacf の Mach-O マジックまで逆方向にスキャンして XUL ベースを特定。_posix_spawnp GOT @ XUL+0x9bb7d30、_getpid GOT @ XUL+0x9bb7600、_write GOT @ XUL+0x9bb87e0。偽造配列のウィンドウはアウトオブライン (malloc された) 配列内に置く必要がある — インライン/nursery オブジェクトは長時間のスキャン中に GC によって移動される。

範囲 / 正直な制限

CVE-2026-2796 によるレンダラープロセスでのコード実行は (シェルとブラウザの両方で) 完全に実証されている。CVE-2026-2768 のサンドボックスエスケープ分析は修正差分に対してソースコードレベルで検証済み。実際のエンドツーエンドの親プロセス破壊トリガーは作業中である (docs 参照)。この研究は防御・教育目的のためのものであり、これらの脆弱性は現在のリリースで修正済みである。

参考

  • MFSA-2026-13
  • NVD: CVE-2026-2796
  • CVE-2026-2796 修正: mozilla-firefox/firefox コミット e2acef67
  • CVE-2026-2768 修正: mozilla-firefox/firefox コミット c5dea6ec

免責事項

セキュリティ研究、教育、防御的テストのみを目的とする。所有していないシステム、または明示的なテスト許可を得ていないシステムに対して使用しないこと。

ツールをダウンロード