Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/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)

عرض المستودع
1منذ 3 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2026-2796 + CVE-2026-2768 — الهروب من صندوق Wasm

بحث استغلال كامل السلسلة لمتصفح Firefox: التباس نوع في WebAssembly من أجل تنفيذ كود في عملية العرض (renderer)، متسلسلًا نحو ثغرة في عملية الأصل لتحقيق الهروب من صندوق الحماية. تم إصلاح الثغرتين في Firefox 148 (MFSA-2026-13)؛ الهدف هنا هو شجرة Firefox 148 الليلية عند 2fbc0748c4 (2026-01-14)، والتي تسبق كلا الإصلاحين.

  • CVE-2026-2796 (Bug 2013165): ترجمة خاطئة في JIT / التباس نوع في التوقيع داخل تحسين استيراد WebAssembly في SpiderMonkey.
  • CVE-2026-2768 (Bug 2014101): هروب من صندوق الحماية — بيانات IPC غير مُتحقق منها تقود إلى كتابة خارج الحدود في كود IndexedDB الخاص بـ العملية الأصلية.

بنية السلسلة

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

ما الذي تم توضيحه

العرضالبيئةالنتيجة
poc/shell/poc-crash.jsjs shell0xDEADBEEF تم إلغاء مرجعيته كـ funcref → SIGSEGV عند 0xdeadbf2f
poc/shell/poc-addrof.jsjs shellاختبارات ذاتية للقراءة/الكتابة العشوائية تنجح
poc/shell/poc-forge.jsjs shellالتحكم في PC: انهيار عند canary مزروع
poc/shell/poc-rce.jsjs shellsystem("id > /tmp/CVE-2026-2796-PWNED; open -a Calculator") — الملف يحتوي على uid=501(sid) ...، وتنفتح الآلة الحاسبة
poc/browser/stage1-browser.htmlNightly (sbLevel 3 content)قراءة/كتابة عشوائية في التبويب المعزول؛ funcref مزور يقفز إلى 0x4141414141414141 → التبويب ينهار، والعملية الأصلية تنجو
poc/browser/stage1-browser-cmd.htmlNightly (sbLevel 3 content)يكشف قاعدة XUL، ويحل posix_spawnp (0x187xxxxx)، ويستدعيها مع /bin/sh -c "touch /tmp/PWNED-FROM-CONTENT" → صندوق حماية macOS يرفض التنفيذ: الملف لا يُنشأ، والصفحة غير متضررة — دليل على أن RCE داخل المحتوى وحدها ≠ تنفيذ أوامر
poc/browser/sandbox-proof.htmlNightly (sbLevel 3 content)تنفيذ أصلي داخل قواعد صندوق الحماية: getpid() يعيد PID الحقيقي للتبويب (يطابق ps)، وwrite(1, ...) الخام من libc يصل إلى سجل الطرفية في المتصفح — لا fork/exec، ولا فتح ملفات
poc/browser/fd3-proof.htmlNightly (sbLevel 3 content)يكتب 32 بايتًا خامًا إلى fd 3 (مقبس IPDL للعملية الأصلية): محلل 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])

انظر docs/full-escape.md لتحليل السبب الجذري للمرحلة 2 (فروقات الإصلاح، تسلسل IPC، استراتيجية الاستغلال).

بناء الأهداف المعرضة للثغرات

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)

شغّل PoCs الخاصة بالمتصفح: أطلق obj-browser/dist/Nightly.app مع ملف تعريف يقوم بتعيين browser.dom.window.dump.enabled=true، وافتح ملفات HTML عبر file://، وراقب stdout لمخرجات dump(). يظهر انهيار التبويب كـ process <pid> exited on signal 10 في سجل العملية الأصلية.

الإزاحات (macOS arm64)

WasmArrayObject: numElements @+16, data ptr @+24, inline data @+40. WasmFuncRef: typeDef ptr @+0x40, call target @+0x38. JSFunction native ptr @+0x20. js shell: os_system @ base+0x1a9f8, system GOT @ base+0x11d47b0. المتصفح: يتم العثور على قاعدة XUL بالمسح للخلف من مؤشر كود أصلي في WebIDL (console.log JSFunction +0x20) إلى سحر Mach-O 0xfeedfacf؛ _posix_spawnp GOT @ XUL+0x9bb7d30، _getpid GOT @ XUL+0x9bb7600، _write GOT @ XUL+0x9bb87e0. يجب أن تعيش نوافذ المصفوفة المزيفة في مصفوفة خارج الخط (مخصصة عبر malloc) — الكائنات المضمنة/الموجودة في الحضانة تُنقل بواسطة مُجمّع القمامة أثناء عمليات الفحص الطويلة.

النطاق / القيود الصادقة

تنفيذ كود في عملية العرض عبر CVE-2026-2796 موثّق بالكامل (الصدفة والمتصفح). تحليل الهروب من صندوق الحماية لـ CVE-2026-2768 مُتحقق منه من المصدر مقابل فروقات الإصلاح؛ مشغّل إفساد العملية الأصلية المباشر من البداية إلى النهاية قيد التطوير (انظر الوثائق). هذا البحث لأغراض دفاعية/تعليمية؛ الثغرات مصححة في الإصدارات الحالية.

المراجع

  • MFSA-2026-13
  • NVD: CVE-2026-2796
  • إصلاح CVE-2026-2796: mozilla-firefox/firefox commit e2acef67
  • إصلاح CVE-2026-2768: mozilla-firefox/firefox commit c5dea6ec

إخلاء المسؤولية

لأغراض البحث الأمني والتعليم والاختبارات الدفاعية فقط. لا تستخدمه ضد أنظمة لا تملكها أو ليس لديك إذن صريح لاختبارها.

تنزيل الأداة