
स्टैक आधारित बफर ओवरफ्लो MsIo64.sys में, nt authority/system में स्थानीय विशेषाधिकार वृद्धि का प्रमाण-अवधारणा
सिस्टम cmd स्पॉन करके LPE के लिए CVE-2021-27965 का शोषण करने का सरल PoC।
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-27965
हस्ताक्षरित MICSYS विंडोज ड्राइवर (MsIo64.sys) में एक समस्या पाई गई जो पूरे स्थानीय सिस्टम से समझौता कर सकती है। ड्राइवर का ioctl डिस्पैच रूटीन all IOCTL कोड में स्टैक-आधारित बफर ओवरफ्लो से ग्रस्त है और उपयोगकर्ता द्वारा आपूर्ति किए गए बफर के सत्यापन का अभाव भी है।
कोई भी उपयोगकर्ता इन ioctl कोडों के लिए हैंडल बना सकता है और ioctl अनुरोध जारी कर सकता है, जो विंडोज सुरक्षा मॉडल को तोड़ते हैं:
प्रत्येक IOCTL कोड पर, ड्राइवर Irp->SystemBuffer को सीधे एक्सेस नहीं करता, बल्कि Irp->SystemBuffer को वर्तमान फ़ंक्शन के स्टैक फ्रेम बफर में कॉपी करने के लिए memcpy जैसे फ़ंक्शन का उपयोग करता है, जिसका आकार हमेशा निश्चित होता है (और फिर इस बफर का उपयोग करता है)। चूंकि Irp->SystemBuffer और Irp->CurrentStackLocation->InputBufferLength दोनों कॉलिंग प्रक्रिया द्वारा नियंत्रित होते हैं, एक दुर्भावनापूर्ण अभिनेता फ़ंक्शन स्टैक फ्रेम के अंदर के बफर को ओवरफ्लो करने के लिए पर्याप्त बड़ा बफर भेज सकता है। ध्यान दें: भले ही DriverEntry में __security_init_cookie() है, लेकिन किसी कारण से ioctl डिस्पैच में __security_check_cookie() गायब है।
TODO
TODO