CVE-2020-0674
CVE-2020-0674 هي ثغرة من نوع use-after-free في محرك jscript القديم. يمكن تشغيلها في إنترنت إكسبلورر. الاستغلال هنا من كتابة maxpl0it، لكن الثغرة نفسها اكتشفتها Qihoo 360 بينما كانت تُستغل في هجمات حقيقية. هذا الاستغلال يكتفي بتشغيل الآلة الحاسبة (calc).
يمكن العثور على الشرح الكامل للاستغلال (writeup) هنا.
نظرة عامة على الثغرة
- توجد الثغرة في دالة
sort الخاصة بالمصفوفة Array عند استخدام دالة مقارنة.
- الوسيطان المُمرَّران إلى دالة المقارنة لا يُتتبَّعان من قبل جامع القمامة (GC)، وبالتالي سيشيران إلى ذاكرة مُحرَّرة بعد استدعاء GC.
ملاحظات حول الاستغلال
- كُتب الاستغلال خصيصًا من أجل Windows 7، لكنه يمكن على الأرجح نقله إلى أنظمة أخرى دون عناء كبير.
- كُتب هذا الاستغلال لإصدارات x64 من إنترنت إكسبلورر، ولذلك سيعمل على إعدادات المتصفح التالية (وقد اختُبر عليها):
- IE 8 (نسخة x64)
- IE 9 (نسخة x64)
- IE 10 (إما مع تفعيل Enhanced Protected Mode أو تفعيل TabProcGrowth)
- IE 11 (إما مع تفعيل Enhanced Protected Mode أو تفعيل TabProcGrowth)
- يجدر بالذكر أن Enhanced Protected Mode على Windows 7 يفعّل ببساطة إصدار x64 من عملية المتصفح، لذا فهو ليس تجاوزًا لبيئة العزل بقدر ما هو غياب لأي عزل إضافي. ومن المفارقات، بما أن هذا الاستغلال مُعدّ لإصدار x64، فإن EPM يتيح له العمل فعلًا.
- الاستغلال ليس مصممًا لتجاوز EMET بالكامل (لم يُنفَّذ فعليًا سوى تجاوز لكشف stack pivot)، ومع ذلك لا يبدو أن النسخة النهائية (5.52) تُطلق EAF+ عند تشغيل الاستغلال بينما النسخة 5.5 تُطلقه (على الأقل على Windows 7 x64). لذا فإن IE 11 في Enhanced Protected Mode مع تفعيل أقصى إعدادات EMET يسمح بتشغيل الاستغلال.
- الاستغلال مليء بالتعليقات التوضيحية، لكن من أجل فهم أفضل لكيفية عمل الاستغلال وما يفعله في كل مرحلة، غيّر
var debug = false; إلى var debug = true; ثم إما افتح وحدة تحكم المطوّر لعرض السجل أو أبقها مغلقة وعاين النوافذ المنبثقة alert بدلًا من ذلك (وهو ما قد يكون مزعجًا بعض الشيء).