تحليل ودفاع عن ثغرة تسرب قيمة Sentinel في محرك Chrome V8

robot
إنشاء الملخص قيد التقدم

تحليل فني لتجاوز Sentinel Value لحماية Chrome V8 HardenProtect

قيمة الحارس هي قيمة خاصة في الخوارزميات، وعادة ما توجد كشرط إنهاء في الخوارزميات التكرارية أو العودية. يوجد العديد من قيم الحارس في شفرة مصدر Chrome. أظهرت الأبحاث الأخيرة أنه من خلال تسريب كائن TheHole يمكن تحقيق تنفيذ أي كود داخل الحاوية لثغرات CVE-2021-38003 وCVE-2022-1364. قام فريق Google بعد ذلك بتحديث هذين الثغرتين في البرية.

بالإضافة إلى كائن TheHole، هناك كائنات أصلية أخرى في V8 لا ينبغي كشفها في JavaScript. تناقش هذه المقالة كائن Uninitialized Oddball، الذي لا يزال من الممكن استخدام طريقة التهرب هذه في أحدث إصدار من V8.

تُعرَّف معظم الكائنات الأصلية في V8 في ملف v8/src/roots/roots.h، حيث يتم ترتيب هذه الكائنات بشكل متجاور في الذاكرة. بمجرد تسريب كائنات أصلية لا ينبغي تسريبها إلى JavaScript، يمكن تنفيذ أي كود داخل الصندوق الرملي.

! [الكشف الحصري عن تجاوز Chrome v8 HardenProtect عن طريق تسريب قيمة Sentinel](https://img-cdn.gateio.im/webp-social/moments-263e5651876fc00c4e0af0cfcd350210.webp019283746574839201

لإثبات هذه الطريقة، يمكن تعديل دالة V8 الأصلية، لتسريب Uninitialized Oddball إلى JavaScript. يمكن تعديل نسبة الإزاحة بالنسبة لـ isolate في دالة %TheHole)( لجعلها ترجع Uninitialized Oddball.

! [الكشف الحصري عن تجاوز Chrome v8 HardenProtect عن طريق تسريب قيمة Sentinel])https://img-cdn.gateio.im/webp-social/moments-26c26345e3ec4effeea2e3e6b7cd8772.webp019283746574839201

يمكن استخدام Uninitialized Oddball لتحقيق قراءة وكتابة عشوائية نسبياً. ستقوم دالة القراءة في JavaScript المحسّنة بحساب الإزاحة مباشرة وفقًا لسمات JavaScript، واستخراج قيم المصفوفة، مما يؤدي إلى خلط الأنواع، مما يحقق قراءة عشوائية.

كشف حصري حول كيفية تجاوز حماية Chrome v8 من خلال تسريب قيمة Sentinel

كشف حصري عن تجاوز حماية Chrome v8 من خلال تسريب قيمة Sentinel

كشف حصري عن تجاوز حماية Chrome v8 من خلال تسريب قيمة Sentinel

الاقتراح لإصلاح المشكلة هو إضافة فحص لخريطة المصفوفة عند إرجاع عناصر المصفوفة من الدالة المحسنة، لتجنب حساب الإزاحة مباشرة لإرجاع قيم المصفوفة.

من الجدير بالذكر أن هذه الطريقة لا تنطبق فقط على Chrome، فبعض البرمجيات الأخرى التي تستخدم محرك V8 قد تتأثر أيضاً. على سبيل المثال، لم تقم Skype بعد بإصلاح هذه الثغرة. تحت x86، وبسبب عدم وجود ضغط العناوين، فإن القراءة والكتابة العشوائية تكون مباشرة بالنسبة للعملية بأكملها.

! [الكشف الحصري عن تجاوز Chrome v8 HardenProtect عن طريق تسريب قيمة Sentinel](https://img-cdn.gateio.im/webp-social/moments-0e52075003a8ee2ca492a5fc9f35c36b.webp019283746574839201

! [الكشف الحصري عن تجاوز Chrome v8 HardenProtect عن طريق تسريب قيمة Sentinel])https://img-cdn.gateio.im/webp-social/moments-230537e420d579aabd89bdd168b20878.webp(

![كشف حصري حول كيفية تجاوز حماية Chrome v8 من خلال تسريب قيمة Sentinel])https://img-cdn.gateio.im/webp-social/moments-506159c94c9e0988552cbcbd13d971e1.webp(

![كشف حصري حول تجاوز حماية Chrome v8 من خلال تسريب قيمة Sentinel])https://img-cdn.gateio.im/webp-social/moments-e9e2000fd501b69ee3ee643a459a26dd.webp(

بشكل عام، يمكن تحقيق قراءة أصلية عشوائية من خلال تسريب uninitialized_Oddball في قيمة Sentinel. هناك قيم Sentinel أخرى في V8 يمكن أن تؤدي إلى مشاكل مشابهة. يُوصى بإضافة هذه القيم Sentinel كمتغيرات إلى الفازر، لاكتشاف المزيد من الأصول المحتملة للاستخدام. بغض النظر عما إذا كانت تعتبر رسميًا مشكلة أمان أم لا، فإن هذه الأنواع من المشاكل ستقلل بشكل كبير من الوقت الذي يحتاجه المخترقون لتحقيق الاستغلال الكامل.

SENC-8.69%
شاهد النسخة الأصلية
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
  • أعجبني
  • 4
  • مشاركة
تعليق
0/400
TommyTeachervip
· 07-20 16:35
بالفعل هناك بعض الخطر
شاهد النسخة الأصليةرد0
BrokeBeansvip
· 07-20 16:22
طوال اليوم أفكر في الحفر والتنقيب، أليس من الأفضل استخدام يدي لحل المسائل؟
شاهد النسخة الأصليةرد0
GateUser-ccc36bc5vip
· 07-20 16:13
هل حماية v8 سيئة إلى هذا الحد؟
شاهد النسخة الأصليةرد0
StablecoinGuardianvip
· 07-20 16:09
أوه أوه، مشكلة جديدة في V8 الآمن مرة أخرى!
شاهد النسخة الأصليةرد0
  • تثبيت