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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-2766-but-with-wasm — CVE-2026-2766، لكن مع wasm | Kitploit
أدوات/GitHubGitHub/sneakynachos/cve-2026-2766-but-with-wasm
تحليل الثغرات الأمنيةالاستغلالشيل كودتطوير الحمولاتاستغلال الملفات الثنائية
GitHubsneakynachos/cve-2026-2766-but-with-wasm

CVE-2026-2766-but-with-wasm

CVE-2026-2766، لكن مع wasm

عرض المستودع
111منذ شهر واحدلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-2766، لكن مع wasm

الحالة: PoC انهيار مُتحقَّق منه مع اختطاف تدفق التحكم المُثبَت (انهيار pc = سم الخلية المُحرَّرة 0xcdcdcdcdcdcdcdcd تحت صدفة التصحيح — يقفز المحرك إلى مؤشر مقروء من ICScript المُحرَّر). العمل المتبقي: التحكم في البايتات المُستعادة. انظر research/README.md.

سلسلة من عائلة WasmBlazeFox على خطأ من 2026: CVE-2026-2766، "خطأ ترجمة JIT / استخدام-بعد-التحرير في محرك JavaScript: مكوّن JIT"، المُصلَّح في Firefox 148 (MFSA 2026-13). النهاية هي نفسها كما في CVE-2024-29943-but-with-wasm: تحويل البدائية إلى التحكم في مؤشر كود، وتوجيهه نحو صفحة WASM JIT المليئة بثوابت shellcode.

السبب الجذري

من تعليقات اختبار الانحدار الخاصة بـ Mozilla (bug 2013583، الاختبار أُضيف في hg 457b68097f81) وICScript Lifetimes SMDOC في js/src/jit/JitScript.h:

  • أثناء التضمين التجريبي لـ Ion، يؤدي انتقال موقع استدعاء متعدد الأشكال إلى استدعاء removeInlinedChild → تتم إزالة الخاص بالابن من لكنه لا يزال مُشارًا إليه بواسطة متجه الخاص بـ — والأخطر، بواسطة stub القديم الذي لا يزال موجودًا في سلسلة IC الخاصة بالمُستدعي.
ICScript
inlinedChildren_
inlinedScripts_
InliningRoot
CallInlinedFunction
  • يقوم GC ضاغط (gczeal(14, 1)، أي ZealCompactValue عند كل تخصيص) بنقل/إخلاء ICScript اليتيم بينما تحتفظ سلسلة الـ stub القديمة بالعنوان القديم.
  • الاستدعاء التالي عبر الـ stub القديم يقوم بإلغاء الإشارة إلى مؤشر ICScript القديم → استخدام-بعد-النقل. في إصدارات ASAN/fuzzing تُسمَّم الخلية المُحرَّرة بـ 0xe5، مما يعطي انهيارًا واضحًا جدًا.
  • أدلة الانهيار

    الإصدار المُعرَّض: mozilla-central rev b3663be61a1a (ليلة 2026-01-15؛ الإصلاح وقع بين 2026-01-15 و2026-02-09 — ليلة 09-فبراير تنجو). الصدفة: Taskcluster linux64-fuzzing-asan-opt jsshell لتلك المراجعة (مطلوب لـ gczeal؛ صدفات release-opt تفتقر إليه).

    root@kitploit:~
    ./js --ion-warmup-threshold=100000 poc.js
    
    == ERROR: AddressSanitizer: SEGV on unknown address 0xe5e5e5e5e5e5e5e5
       The signal is caused by a READ memory access.
       #0-#3 <unknown module>          <- baseline JIT code
       #4 EnterJit / MaybeEnterJit     <- js/src/jit/Jit.cpp
       #10 js::jit::DoCallFallback     <- BaselineIC.cpp (the stale IC chain)
       rdi = 0xe5e5e5e5e5e5e5e5        <- the freed ICScript
    

    يحدث إلغاء الإشارة في كود baseline JIT أثناء سيره في سلسلة الـ stub القديمة: التحكم في الخلية المُستعادة = التحكم في حقول ICEntry/stub التي يثق بها baseline، بما في ذلك مؤشر كود الـ stub الذي يقفز إليه.

    خطة الاستغلال (قيد التنفيذ)

    root@kitploit:~
    orphaned ICScript (this PoC)
      -> compacting GC moves it; stale chain keeps old address
        -> reclaim the old cell with controlled bytes (size-class spray)
          -> baseline reads fake ICEntry -> fake ICStub -> fake code_ pointer
            -> jump into the WASM JIT page shellcode (f64.const immediates,
               FuncExport entry-offset overwrite — see the 2024-29943 repo)
    

    انظر research/README.md لسجل التسليح الكامل. ملخص الوضع الحالي:

    • الخطأ هو استخدام-بعد-النقل على ICScript مخصَّص بـ malloc (TrailingArray) — قابل للاستعادة بالرش من حيث المبدأ باستخدام مخازن مؤقتة مصنَّفة بالحجم.
    • التحرير والاستخدام يفصلهما ميكروثوانٍ داخل استدعاء new Ctor(flag) النهائي، دون نقطة استدعاء JS بينهما؛ الرش الساذج إما يفوّت النافذة (reclaim1/2) أو يبدّد حالة IC بعاصفة GC zeal (reclaim3). السلسلة القديمة تنجو من gc() عادي واحد (purge_check).
    • الخطوة التالية هي تحليل تخصيص المحرك تحت gdb (أي التخصيصات تهبط في الخلية المُحرَّرة بين التحرير والاستخدام). لا يعمل gdb تحت محاكاة x86 الخاصة بـ OrbStack، لذا يتطلب هذا جهاز Linux x86-64 أصلي.

    مرحلة WASM نفسها مبنية ومُثبَتة بالفعل في CVE-2024-29943-but-with-wasm؛ فقط إزاحات نموذج الكائنات تحتاج إلى إعادة اشتقاق لهذا الإصدار من عصر FF149.

    الملفات

    • poc.js — اختبار الانحدار الخاص بـ Mozilla (bug 2013583)، مُتحقَّق من انهياره لـ ASAN jsshell بتاريخ 2026-01-15 كما هو موضح أعلاه.

    المراجع

    • الإشعار: MFSA 2026-13 (Firefox 148)
    • الخطأ: https://bugzilla.mozilla.org/show_bug.cgi?id=2013583 (مُقيَّد)
    • إضافة الاختبار: hg 457b68097f81
    • سلاسل شقيقة: https://github.com/SneakyNachos/CVE-2024-29943-but-with-wasm و https://github.com/SneakyNachos/CVE-2026-2764-but-with-wasm
    • أصل التقنية: https://github.com/SneakyNachos/WasmBlazeFox
    تنزيل الأداة