Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-2796-and-CVE-2026-2768-escape-the-wasm-box — Vollständige Firefox-Kette: CVE-2026-2796 wasm-Typverwechslung -> RCE im Content-Prozess, plus CVE-2026-2768 Analyse des Parent-Prozess-Escapes (beide in Firefox 148 behoben) | Kitploit
Tools/GitHubGitHub/sneakynachos/cve-2026-2796-and-cve-2026-2768-escape-the-wasm-box
SchwachstellenanalyseExploitationWebsicherheitBinary-Exploitation
GitHubsneakynachos/cve-2026-2796-and-cve-2026-2768-escape-the-wasm-box

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

Vollständige Firefox-Kette: CVE-2026-2796 wasm-Typverwechslung -> RCE im Content-Prozess, plus CVE-2026-2768 Analyse des Parent-Prozess-Escapes (beide in Firefox 148 behoben)

Repository anzeigen
1vor 3 TagenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2026-2796 + CVE-2026-2768 — Ausbruch aus der Wasm-Box

Firefox-Exploitation-Forschung zur vollständigen Angriffskette: eine WebAssembly-Typverwechslung für Codeausführung im Renderer, verkettet mit einem Bug im Parent-Prozess für einen Sandbox-Escape. Beide Bugs wurden in Firefox 148 (MFSA-2026-13) behoben; das Ziel hier ist ein Firefox-148-Nightly-Tree @ 2fbc0748c4 (2026-01-14), der aus der Zeit vor beiden Fixes stammt.

  • CVE-2026-2796 (Bug 2013165): JIT-Fehlkompilierung / Signatur-Typverwechslung in SpiderMonkeys WebAssembly-Import-Optimierung.
  • CVE-2026-2768 (Bug 2014101): Sandbox-Escape — unvalidierte IPC-Daten führen zu einem Out-of-Bounds-Schreibzugriff im IndexedDB-Code des Parent-Prozesses.

Architektur der Angriffskette

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

Was demonstriert wird

DemoWoErgebnis
poc/shell/poc-crash.jsjs shell0xDEADBEEF als Funcref dereferenziert → SIGSEGV bei 0xdeadbf2f
poc/shell/poc-addrof.jsjs shellSelbsttests für beliebiges R/W bestehen
poc/shell/poc-forge.jsjs shellPC-Kontrolle: Absturz an platzierter Canary
poc/shell/poc-rce.jsjs shellsystem("id > /tmp/CVE-2026-2796-PWNED; open -a Calculator") — Datei enthält uid=501(sid) ..., Calculator öffnet sich
poc/browser/stage1-browser.htmlNightly (sbLevel 3 content)beliebiges R/W im sandboxierten Tab; gefälschter Funcref springt zu 0x4141414141414141 → Tab stürzt ab, Parent überlebt
poc/browser/stage1-browser-cmd.htmlNightly (sbLevel 3 content)leakt die XUL-Basis, löst posix_spawnp auf (0x187xxxxx) und ruft posix_spawnp mit /bin/sh -c "touch /tmp/PWNED-FROM-CONTENT" auf → macOS-Sandbox verweigert den Exec: Datei wird nicht erstellt, Seite unbeschädigt — Beweis, dass Content-RCE allein ≠ Befehlsausführung ist
poc/browser/sandbox-proof.htmlNightly (sbLevel 3 content)nativer Exec innerhalb der Sandbox-Regeln: getpid() liefert die echte PID des Tabs (stimmt mit ps überein), und rohes libc-write(1, ...) landet im Terminal-Log des Browsers — kein Fork/Exec, keine Dateiöffnungen
poc/browser/fd3-proof.htmlNightly (sbLevel 3 content)schreibt 32 rohe Bytes auf fd 3 (den IPDL-Socket des Parents): der IPC-Parser des Parents verarbeitet Angreifer-Bytes (Message needs unreceived descriptors ... num_handles:33), verwirft die Nachricht und killt den Tab ("Exiting due to channel error") — die Transport-Primitive, die Stufe 2 mit wohlgeformten, aber bösartigen IndexedDB-Nachrichten als Waffe einsetzt
poc/browser/stage2-trigger.htmlNightly

Siehe docs/full-escape.md für die Root-Cause-Analyse von Stufe 2 (Fix-Diffs, IPC-Serialisierung, Exploitation-Strategie).

Bauen der verwundbaren Ziele

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)

Browser-PoCs ausführen: obj-browser/dist/Nightly.app mit einem Profil starten, das browser.dom.window.dump.enabled=true setzt, die HTML-Dateien über file:// öffnen und stdout nach dump()-Ausgabe beobachten. Ein Tab-Absturz erscheint als process <pid> exited on signal 10 im Parent-Log.

Offsets (macOS arm64)

WasmArrayObject: numElements @+16, data ptr @+24, inline data @+40. WasmFuncRef: typeDef ptr @+0x40, call target @+0x38. JSFunction-Native- Pointer @+0x20. js shell: os_system @ base+0x1a9f8, system GOT @ base+0x11d47b0. Browser: XUL-Basis, gefunden durch Zurückscannen von einem nativen WebIDL-Code-Pointer (console.log-JSFunction +0x20) bis zur 0xfeedfacf-Mach-O-Magic; _posix_spawnp GOT @ XUL+0x9bb7d30, _getpid GOT @ XUL+0x9bb7600, _write GOT @ XUL+0x9bb87e0. Fake-Array-Fenster müssen in einem Out-of-Line-Array (malloc'd) leben — Inline-/Nursery-Objekte werden bei langen Scans vom GC verschoben.

Umfang / ehrliche Einschränkungen

Die Codeausführung im Renderer über CVE-2026-2796 ist vollständig demonstriert (Shell und Browser). Die Sandbox-Escape-Analyse von CVE-2026-2768 ist quellcode-verifiziert gegen den Fix-Diff; der Live-End-to-End-Trigger für die Parent-Korruption ist noch in Arbeit (siehe Doku). Diese Forschung ist für defensive/lehrreiche Zwecke gedacht; die Schwachstellen sind in aktuellen Versionen gepatcht.

Referenzen

  • MFSA-2026-13
  • NVD: CVE-2026-2796
  • CVE-2026-2796-Fix: mozilla-firefox/firefox-Commit e2acef67
  • CVE-2026-2768-Fix: mozilla-firefox/firefox-Commit c5dea6ec

Haftungsausschluss

Nur für Sicherheitsforschung, Ausbildung und defensive Tests. Nicht gegen Systeme verwenden, die man nicht besitzt oder für die man keine ausdrückliche Genehmigung zum Testen hat.

Tool herunterladen
Erreichbarkeit des Parent-Bug-Pfads in reinem JS (Auto-Increment-Index-Keys [1,2,3,4])