
ThrottleStop.sys (CVE-2025-7771) का उपयोग करके मनमाना भौतिक मेमोरी रीड/राइट शोषण, सुपरफ़ेच पता अनुवाद के साथ - विंडोज कर्नेल सुरक्षा अनुसंधान
शोध उपकरण जो कमजोर ड्राइवर शोषण के साथ वर्चुअल-से-भौतिक पता अनुवाद के माध्यम से भौतिक मेमोरी एक्सेस प्रदर्शित करता है।
यह परियोजना पता अनुवाद के लिए सुपरफ़ेच तकनीक को IOCTL-आधारित भौतिक मेमोरी एक्सेस के साथ जोड़कर निम्न-स्तरीय विंडोज मेमोरी प्रबंधन की खोज करती है। कर्नेल-मोड/यूज़र-मोड इंटरैक्शन और मेमोरी सबसिस्टम आंतरिक को समझने के लिए बनाया गया।
CVE ID: CVE-2025-7771
घटक: ThrottleStop.sys (TechPowerUp LLC से हस्ताक्षरित ड्राइवर)
प्रभावित संस्करण: ThrottleStop 3.0.0.0 और संभावित अन्य
भेद्यता प्रकार: अपर्याप्त एक्सेस नियंत्रण के साथ उजागर IOCTL (CWE-782)
CVSS स्कोर: 8.7 (उच्च) – Kaspersky Labs
प्रभाव: स्थानीय विशेषाधिकार वृद्धि (LPE)
ThrottleStop.sys ड्राइवर दो IOCTL हैंडलर को उजागर करता है जो MmMapIoSpace के माध्यम से पूरी तरह से मनमानी भौतिक मेमोरी रीड और राइट ऑपरेशन की अनुमति देते हैं। इन इंटरफेस पर कोई सत्यापन जाँच, सीमा प्रतिबंध या एक्सेस नियंत्रण नहीं हैं। कोई भी यूज़र-मोड एप्लिकेशन किसी भी भौतिक पते को निर्दिष्ट कर सकता है और मनमाना डेटा पढ़ या लिख सकता है।
यह अप्रतिबंधित पहुँच सक्षम करता है:
पहुँच की मनमानी प्रकृति का अर्थ है कि हमलावर के पास ड्राइवर द्वारा लगाए गए किसी भी प्रतिबंध के बिना भौतिक मेमोरी पर पूर्ण नियंत्रण होता है।
शोषण इस पैटर्न का अनुसरण करता है:
\\.\ThrottleStop डिवाइस ऑब्जेक्ट के लिए हैंडल खोलेंNtQuerySystemInformation का उपयोग करेंMmMapIoSpace के माध्यम से भौतिक मेमोरी पर रीड/राइट के लिए IOCTL कमांड जारी करेंवास्तविक दुनिया के मैलवेयर ने इस भेद्यता का उपयोग निष्पादन प्रवाह को हाईजैक करने के लिए NtAddAtom जैसे कर्नेल फंक्शन को पैच करके सुरक्षा उत्पादों को अक्षम करने के लिए किया है।
यह परियोजना शैक्षिक उद्देश्यों के लिए ऐसी हमला श्रृंखला के तकनीकी घटकों को प्रदर्शित करती है:
सुपरफ़ेच एकीकरण – SystemSuperfetchInformation का उपयोग करके कर्नेल वर्चुअल पतों का भौतिक पतों में अनुवाद करता है
ड्राइवर इंटरफ़ेस – भौतिक मेमोरी संचालन के लिए DeviceIoControl के माध्यम से कमजोर ड्राइवर के साथ संचार करता है
// Acquire memory map for translation
auto mm = spf::memory_map::current();
// Translate virtual kernel address to physical
void* virt = reinterpret_cast<void*>(0xFFFFF80000001000);
std::uint64_t phys = mm->translate(virt);
// Access physical memory through driver
ULONG64 value = Driver.ReadPhysical<ULONG64>(phys);
केवल शैक्षिक और शोध उद्देश्यों के लिए। कंप्यूटर सिस्टम तक अनधिकृत पहुंच अवैध है। यह कोड रक्षात्मक सुरक्षा अनुसंधान के लिए दस्तावेजी भेद्यताओं को प्रदर्शित करता है।
MIT लाइसेंस