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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2021-21220 — عرض تعليمي يفصل استغلال CVE-2021-21220، وهو خطأ في ارتباك النوع (type confusion) في مترجم JIT الخاص بـ V8 يؤدي إلى وصول خارج الحدود، وقراءة/كتابة عشوائية في الذاكرة، وتنفيذ تعليمات برمجية عن بُعد عبر WebAssembly. | Kitploit
أدوات/GitHubGitHub/borahll/cve-2021-21220
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبالأوراق والأبحاثالتعلم والتعليماستغلال الملفات الثنائية
GitHubborahll/cve-2021-21220

CVE-2021-21220

عرض تعليمي يفصل استغلال CVE-2021-21220، وهو خطأ في ارتباك النوع (type confusion) في مترجم JIT الخاص بـ V8 يؤدي إلى وصول خارج الحدود، وقراءة/كتابة عشوائية في الذاكرة، وتنفيذ تعليمات برمجية عن بُعد عبر WebAssembly.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

استغلال CVE-2021-21220

من سلوك JIT غير صحيح إلى تنفيذ كود عن بُعد

نظرة عامة

يشرح هذا العرض التقديمي استغلال CVE-2021-21220، وهي ثغرة في محرك V8 JavaScript في متصفح Google Chrome ناتجة عن افتراضات غير صحيحة لمُحسِّن JIT أثناء التحسين.

يسير العرض التقديمي عبر:

  • كيفية قيام V8 بالتجميع في الوقت المناسب (JIT)
  • كيف يظهر خطأ الخلط بين الأنواع المُوقَّعة/غير المُوقَّعة أثناء التحسين
  • كيف يؤدي الخطأ إلى أولية مصفوفة خارج الحدود (OOB)
  • كيف يمكن للمهاجمين استغلال الوصول خارج الحدود لتسريب العناوين وتحقيق كتابات عشوائية في الذاكرة
  • كيف يصبح WebAssembly (Wasm) هدفًا لتنفيذ كود أصلي
  • الإجراءات التخفيفية الحالية ودفاعات المتصفح الحديثة

أهداف العرض التقديمي

الهدف من هذا العرض التقديمي هو توضيح كيف يمكن لخطأ تحسيني دقيق داخل محرك JavaScript حديث أن يتصاعد إلى:

  • إفساد الذاكرة
  • أوليات قراءة/كتابة عشوائية
  • تعديل الكود الأصلي
  • تنفيذ كود عن بُعد محتمل (RCE)

تسلط سلسلة الاستغلال الضوء على كيفية موازنة محركات JIT بين الأداء والأمان، وكيف يمكن أن تصبح افتراضات التحسين غير الصحيحة قابلة للاستغلال.


المواضيع المُغطاة

1. بنية V8

يقدم العرض التقديمي المكونات الرئيسية لـ V8:

مترجم Ignition

  • ينفذ البايت كود الخاص بـ JavaScript
  • يجمع ملاحظات وقت التشغيل
  • يخزن معلومات الأنواع في متجهات الملاحظات

مُحسِّن TurboFan

  • يبني رسومًا بيانية مُحسَّنة من ملاحظات وقت التشغيل
  • يُدرج افتراضات تخمينية وحراس
  • ينفذ تمريرات تحسينية عدوانية

الواجهة الخلفية للكود الآلي

  • يُصدر تعليمات CPU أصلية
  • يُنتج كودًا آليًا مُحسَّنًا للدوال “الساخنة”

يوضح الرسم البياني للبنية في العرض التقديمي كيف ينتقل JavaScript من:

root@kitploit:~
Parsing → Bytecode → Optimization → Execution

2. لماذا يصعب تحسين JavaScript

JavaScript صعب للتنفيذ عالي الأداء لأن:

  • المتغيرات تغير أنواعها ديناميكيًا
  • المصفوفات تغير بنيتها وأنواع عناصرها
  • العوامل مثل + يمكن أن يكون لها معانٍ متعددة
  • فحوصات وقت التشغيل مكلفة

يستخدم V8 التجميع JIT لتحسين أنماط التنفيذ الشائعة عن طريق التخمين حول سلوك وقت التشغيل.


3. السبب الجذري لـ CVE-2021-21220

تنشأ الثغرة من عدم تطابق بين الأعداد المُوقَّعة وغير المُوقَّعة أثناء تحسين JIT.

المفاهيم الرئيسية الموضحة:

  • Uint32Array
  • Word32Xor
  • نشر نوع غير صحيح
  • ChangeInt32ToInt64
  • اختيار تعليمات تجميع خاطئة

يستغل الكود القيمة:

root@kitploit:~
0x80000000

التي تُعيِّن بت الإشارة لعدد صحيح 32 بت.


4. عدم تطابق التحسين

تحدث الثغرة لأن TurboFan يُحسِّن:

root@kitploit:~
x ^ 0

بالكامل.

أثناء هذا التحسين:

  • تختفي عملية XOR
  • تُفقد معلومات النوع
  • تُفسَّر القيم المُوقَّعة على أنها غير مُوقَّعة
  • ينحرف سلوك JIT عن سلوك المترجم

يؤدي هذا إلى توليد كود آلي غير صحيح وقيم يتحكم بها المهاجم.


5. بناء أولية OOB

يحول الكود نتيجة JIT غير الصحيحة إلى تحكم في سلوك المصفوفة.

يوضح العرض التقديمي:

  1. قيمة عدد صحيح مُحسَّنة خاطئة
  2. تحويلها إلى متغير تحكم i
  3. عدم تطابق بين تنفيذ الإحماء والتنفيذ المُحفِّز
  4. تجاوز لطول المصفوفة Array.shift()
  5. إنشاء مصفوفة قادرة على OOB

مفاهيم استغلال هامة موضحة:

  • تحسين الإحماء
  • التحسين التخميني
  • الخلط بين الأنواع
  • إفساد طول المصفوفة

6. الوصول خارج الحدود

بمجرد أن يصبح طول المصفوفة -1، يحصل المهاجم على:

  • قراءات خارج الحدود
  • كتابات خارج الحدود
  • الوصول إلى كائنات V8 المجاورة في الكومة

ثم يوضح الكود:

  • تسريب المؤشرات
  • اكتشاف عناوين الكائنات
  • تداخل المصفوفات
  • استخراج مؤشرات V8 الخام

7. إساءة استخدام WebAssembly

يشرح العرض التقديمي كيف يمكن للمهاجمين استهداف:

  • صفحات كود WebAssembly المُجمَّعة
  • الذاكرة القابلة للتنفيذ الأصلية التي يُنشئها V8

تدفق الهجوم:

  1. إنشاء دالة Wasm
  2. تحديد موقع الذاكرة القابلة للتنفيذ
  3. استبدال الكود الآلي المُجمَّع
  4. إعادة تنفيذ Wasm
  5. تحقيق تنفيذ أصلي عشوائي

يوضح هذا كيف يمكن لخلل في محرك JavaScript أن ينتقل إلى تنفيذ كود على مستوى العملية.


الدفاعات والإجراءات التخفيفية

يغطي القسم الأخير دفاعات المتصفح الحديثة:

المؤشرات المضغوطة

تُقلِّل التعرض المباشر للمؤشرات وإمكانية التنبؤ بالكومة.

عدم المباشرة في المؤشرات

تمنع الوصول المباشر إلى عناوين الذاكرة الخام.

عزل الكومة (Sandboxing)

تعزل مناطق الذاكرة وتُخفِّف تأثير الاستغلال.

W^X (Write XOR Execute)

تمنع الصفحات من أن تكون قابلة للكتابة والتنفيذ في نفس الوقت.

يتضمن العرض التقديمي أيضًا الفرق الفعلي لتصحيح V8 الذي يُظهر إصلاح مشكلة التمديد المُوقَّع.


النقاط الرئيسية

يوضح هذا العرض التقديمي كيف:

  • أخطاء تحسينية صغيرة يمكن أن تصبح ثغرات خطيرة
  • مُحسِّنات JIT تزيد بشكل كبير من تعقيد سطح الهجوم
  • التخمين في وقت التشغيل يمكن أن يُحدث تناقضات خطيرة
  • WebAssembly يغير مشهد الاستغلال
  • المتصفحات الحديثة تتطلب دفاعات متعددة الطبقات

التقنيات المُناقشة

  • JavaScript
  • محرك Google V8
  • TurboFan
  • Ignition
  • WebAssembly (Wasm)
  • التجميع JIT
  • إفساد الذاكرة
  • الوصول خارج الحدود
  • استغلال المتصفح

الغرض التعليمي

هذه المادة مخصصة بشكل صارم لـ:

  • البحث الأمني
  • العروض التعليمية
  • تعلم دواخل المتصفح
  • تحليل الثغرات

لا تستخدم هذه المعلومات ضد أنظمة لا تملكها أو ليس لديك إذن لاختبارها.


المراجع

  • CVE-2021-21220
  • محرك Google Chrome V8
  • دواخل مُحسِّن TurboFan
  • أمان وقت تشغيل WebAssembly
  • https://www.zerodayinitiative.com/blog/2021/12/15/exploitation-of-cve-2021-21220-from-incorrect-jit-behavior-to-rce
  • https://www.zerodayinitiative.com/blog/2021/12/8/understanding-the-root-cause-of-cve-2021-21220-a-chrome-bug-from-pwn2own-2021
  • https://www.zerodayinitiative.com/blog/2021/12/8/understanding-the-root-cause-of-cve-2021-21220-a-chrome-bug-from-pwn2own-2021
تنزيل الأداة