
Gigabyte के GVCIDrv64.sys kernel driver के लिए proof-of-concept exploit, जो मनमाने physical memory और I/O port read/write के माध्यम से local privilege escalation प्राप्त करता है।
नमस्ते हैकर्स।
GVCIDrv64.sys वह हस्ताक्षरित कर्नेल ड्राइवर है जो Gigabyte की BIOS यूटिलिटी के साथ आता है। यह \\.\GVCIDrv64 को बिना किसी सुरक्षा डिस्क्रिप्टर के बनाता है, इसलिए कोई भी स्थानीय उपयोगकर्ता इसे खोल सकता है — न एडमिन, न UAC। यह 3 IOCTLs को बिना किसी एक्सेस कंट्रोल के एक्सपोज़ करता है: 32 MB फिज़िकल मेमोरी को मैप करना (0x9C406580), अनमैप (0x9C406584), और 1/2/4 बाइट्स का रॉ I/O पोर्ट रीड/राइट (0x9C406588)।
चाल यह है कि इनमें से 2 कैसे मिलकर काम करते हैं। मैप IOCTL एक PCI डिवाइस का BAR0 पढ़ता है और उसे मैप करता है — लेकिन पोर्ट IOCTL आपको पहले उस BAR0 को फिर से लिखने देता है। BAR को किसी भी फिज़िकल एड्रेस पर पॉइंट करें, मैप को कॉल करें, और आपकी चुनी हुई RAM का 32 MB आपके प्रोसेस में आ जाता है। यह मनमाना फिज़िकल रीड/राइट है जो 2 ऐसी सुविधाओं से बना है जिनमें से प्रत्येक को हानिरहित माना गया था।
तो हमें क्या मिलता है? एक साधारण उपयोगकर्ता खाते से मनमाना फिज़िकल मेमोरी r/w और मनमाना i/o पोर्ट एक्सेस, बिना किसी मेमोरी करप्शन और बिना किसी मिटिगेशन से लड़ने के। एक्सप्लॉइट फिज़िकल मेमोरी को स्कैन करके System प्रोसेस (pid 4) को ढूंढता है, उसका टोकन पढ़ता है, अपने ही प्रोसेस टोकन को ओवरराइट करता है और एक system शेल स्पॉन करता है। डेटा-ओनली, कर्नेल मोड में कोई शेलकोड नहीं।
2 व्यावहारिक सीमाएँ। BAR0 32-बिट है, इसलिए विंडो 4 GB से नीचे रहती है — ≤2 GB RAM वाला VM इस्तेमाल करें। और एक्सप्लॉइट संक्षेप में एक NIC के BAR0 को फिर से लिखता है, इसलिए पहले नेटवर्क एडाप्टर को डिसेबल करें वरना स्वैप के दौरान कोई इंटरप्ट आपको BSOD दे देगा।
Windows 10 x64 22H2 पर VMware Workstation (2 GB RAM) में टेस्ट किया गया। Gigabyte की यूटिलिटी इंस्टॉल होने पर ड्राइवर पहले से लोड होता है; एक्सप्लॉइट इसे टेस्ट बॉक्स पर SCM के ज़रिए भी लोड कर सकता है।
gcc -O2 -o exploit.exe exploit.c -ladvapi32
exploit.exe
जून 2026 में Gigabyte को रिपोर्ट किया गया। Gigabyte ने ड्राइवर को पूरी तरह हटा दिया और GBT_VGA_26.08.24.01 में इसे GvVbiosDrv64.sys से बदल दिया — पुराना कमज़ोर ड्राइवर अब मौजूद नहीं है। एडवाइज़री: Security Advisory 2454।
arb_rw.c एक स्टैंडअलोन फिज़िकल मेमोरी रीड/राइट/डंप टूल है।
SHA256 a2353030d4ea3ad9e874a0f7ff35bbfa10562c98c949d88cabab27102bbb8e48 GVCIDrv64.sys