ثغرة جديدة في محرك Chrome V8: تسرب Oddball غير المهيأ يتجاوز صندوق الرمل

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

من خلال تسريب قيمة Sentinel لتجاوز حماية Chrome V8 HardenProtect

المقدمة

قيمة السنتينل هي نوع خاص من القيم في الخوارزميات، وغالبًا ما تستخدم كشرط لإنهاء في الخوارزميات التكرارية أو العودية. تم استخدام هذا النوع من القيم على نطاق واسع في شفرة مصدر Chrome. مؤخرًا، اكتشف باحثو الأمن أنه من خلال تسريب كائن TheHole يمكن تحقيق تنفيذ أي كود داخل صندوق الرمل الخاص بـ Chrome. بعد ذلك، قام فريق Google بسرعة بإصلاح ثغرتين في البرية.

ومع ذلك، لا تزال هناك كائنات أصلية أخرى في V8 لا ينبغي تسريبها إلى JavaScript. ستناقش هذه المقالة كائنًا جديدًا: Uninitialized Oddball. ظهرت هذه الطريقة للتجاوز لأول مرة في مشكلة قدمها أحد أعضاء Project0، ولا تزال متاحة في أحدث إصدار من V8.

من الجدير بالذكر أن هذه الطريقة تتمتع بعمومية قوية:

  1. في CVE-2021-30551، كانت أول دليل إثبات هو تسريب oddball غير مهيأ داخلياً.

  2. تم تسريب POC الخاص ب CVE-2022-1486 أيضا بشكل مباشر UninitializedOddball.

  3. تم استخدام هذه الطريقة أيضًا في مشكلة بدون CVE مخصص.

توضح هذه الحالات أهمية المشكلة بشكل كاف، ويستحق الأمر إعادة النظر في البرمجيات التي قد تتأثر.

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

قيمة Sentinel في V8

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

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

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

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

تجاوز HardenType

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

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

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

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

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

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

تحذير PatchGap

تتعلق PatchGap هذه المرة ليس فقط بالمشكلة 1352549، ولكن أيضًا بعدة ثغرات مشابهة مثل المشكلة 1314616 والمشكلة 1216437. بعد الكشف عن طريقة الالتفاف الجديدة، انخفضت صعوبة استغلال هذه الثغرات بشكل كبير. لم يعد يحتاج القراصنة تقريبًا إلى بحث إضافي لإكمال سلسلة الاستغلال.

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

ملخص

هناك العديد من قيم Sentinel الأخرى في V8، والتي قد تواجه مشكلات مماثلة. هذا يعطينا بعض الإلهام:

  1. هل يمكن أيضًا تحقيق V8 RCE من خلال تسرب uninitialized_Oddball آخر؟

  2. هل يجب اعتبار هذه الأنواع من المشاكل مسائل أمنية رسمية؟

  3. هل يجب تضمين قيمة Sentinel كمتغير في اختبار Fuzzer؟

بغض النظر عن ذلك، ستقلل هذه الأنواع من المشكلات بشكل كبير من فترة استغلال المتسللين. وهذا يستحق اهتمامنا الكبير.

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

SENC2.49%
شاهد النسخة الأصلية
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
  • أعجبني
  • 6
  • إعادة النشر
  • مشاركة
تعليق
0/400
ContractTestervip
· 08-15 05:19
مشكلة جديدة قديمة عادت مرة أخرى
شاهد النسخة الأصليةرد0
BlockchainWorkervip
· 08-13 17:55
ثغرة v8 هذه خطيرة للغاية
شاهد النسخة الأصليةرد0
SocialFiQueenvip
· 08-12 12:23
يجب متابعة حل المشكلة الخطيرة
شاهد النسخة الأصليةرد0
CryptoFortuneTellervip
· 08-12 12:15
الثغرة لم تُصلح بعد.
شاهد النسخة الأصليةرد0
GamefiHarvestervip
· 08-12 12:12
واو V8 قد خرجت من الجحر مرة أخرى
شاهد النسخة الأصليةرد0
CryptoSurvivorvip
· 08-12 12:11
مرة أخرى، تم تجاوز الصندوق الرملي
شاهد النسخة الأصليةرد0
  • تثبيت