CVE-2020-0674
CVE-2020-0674 पुराने jscript इंजन में एक use-after-free भेद्यता है। इसे Internet Explorer में ट्रिगर किया जा सकता है। यहाँ दिया गया exploit maxpl0it द्वारा लिखा गया है, लेकिन इस भेद्यता की खोज Qihoo 360 ने की थी, जिसका उपयोग वास्तविक दुनिया में हो रहा था। यह exploit केवल calc खोलता है।
Exploit writeup यहाँ पाया जा सकता है.
भेद्यता अवलोकन
- यह भेद्यता Array के
sort फ़ंक्शन में मौजूद है जब comparator फ़ंक्शन का उपयोग किया जाता है।
- comparator फ़ंक्शन के लिए दिए गए दो तर्कों को Garbage Collector द्वारा ट्रैक नहीं किया जाता है और इस प्रकार GC कॉल होने के बाद वे मुक्त (freed) मेमोरी की ओर संकेत करेंगे।
Exploit नोट्स
- यह exploit विशेष रूप से Windows 7 के लिए लिखा गया था, लेकिन संभवतः बिना अधिक परेशानी के इसे पोर्ट किया जा सकता है।
- यह exploit IE के x64 संस्करणों के लिए लिखा गया था, इसलिए यह निम्नलिखित ब्राउज़र कॉन्फ़िगरेशन पर चलेगा (और परीक्षण किया जा चुका है):
- IE 8 (x64 build)
- IE 9 (x64 build)
- IE 10 (Enhanced Protected Mode सक्षम या TabProcGrowth सक्षम के साथ)
- IE 11 (Enhanced Protected Mode सक्षम या TabProcGrowth सक्षम के साथ)
- यह ध्यान देने योग्य है कि Windows 7 पर Enhanced Protected Mode केवल ब्राउज़र प्रक्रिया के x64 संस्करण को सक्षम करता है, इसलिए यह सैंडबॉक्स एस्केप नहीं है, बल्कि कोई अतिरिक्त सैंडबॉक्स नहीं है। विडंबना यह है कि चूँकि यह exploit x64 के लिए है, EPM वास्तव में इसे कार्य करने की अनुमति देता है।
- यह exploit पूरी तरह से EMET को बायपास करने के लिए नहीं बनाया गया है (केवल स्टैक पिवट डिटेक्शन बायपास वास्तव में लागू किया गया है), हालाँकि अंतिम संस्करण (5.52) में exploit चलाने पर EAF+ ट्रिगर नहीं होता है, जबकि 5.5 में होता है (कम से कम Windows 7 x64 पर)। इसलिए IE 11 में Enhanced Protected Mode के साथ अधिकतम EMET सेटिंग्स सक्षम होने पर यह exploit चल सकता है।
- यह exploit बहुत अधिक टिप्पणियों के साथ लिखा गया है, लेकिन यह समझने के लिए कि exploit कैसे काम करता है और प्रत्येक चरण में क्या कर रहा है,
var debug = false; को var debug = true; में बदलें और या तो लॉग देखने के लिए developer console खोलें या उसे बंद रखें और इसके बजाय alert पॉपअप देखें (जो थोड़ा परेशान करने वाले हो सकते हैं)।