
# CVE-2026-35250 के लिए प्रूफ-ऑफ-कॉन्सेप्ट VirtualBox के DevVGA_VBVA में एक इंटीजर ओवरफ्लो, जो विशेषाधिकार प्राप्त गेस्ट के माध्यम से डिनायल ऑफ सर्विस की ओर ले जाता है। इसमें AI-सहायता प्राप्त विश्लेषण और एक्सप्लॉइट मॉड्यूल शामिल है।
मेरा पहला CVE 2.3 है
समस्या src/VBox/Devices/Graphics/DevVGA_VBVA.cpp:740-743 पर है, जहाँ ASSERT_GUEST_MSG_RETURN में आयाम जाँच || (OR) का उपयोग करती है, && (AND) के बजाय। एक गेस्ट width=0x80000001, height=16 प्रदान कर सकता है और जाँच पास हो जाती है क्योंकि height <= 2048 है। फिर पंक्तियों 745-746 पर:
cbPointerData = ((((SafeShape.u32Width + 7) / 8) * SafeShape.u32Height + 3) & ~3)
+ SafeShape.u32Width * 4 * SafeShape.u32Height;
पंक्ति 748 पर बाद की जाँच (cbPointerData <= cbShape - 24) ट्रंकेटेड मान (80 <= 104) के साथ पास हो जाती है। होस्ट RTMemAlloc के माध्यम से 80 बाइट्स आवंटित करता है, गेस्ट VRAM से 80 बाइट्स कॉपी करता है, फिर आयाम 2,147,483,649 × 16 को 80-बाइट बफर के साथ को पास करता है, जो विशाल आयामों का उपयोग करके कर्सर आकृति को प्रोसेस करता है।
pfnVBVAMousePointerShapeहोस्ट ओवरफ्लो हुए आयामों से AND स्कैनलाइन चौड़ाई की गणना कर रहा है और 80-बाइट हीप बफर से आगे पढ़ रहा है।
क्रैश 1 — NULL पॉइंटर WRITE (GUI डिस्प्ले थ्रेड):
ExceptionCode=0xc0000005 ExceptionAddress=VirtualBoxVM.dll+0x000267a2
ExceptionInformation[0]=1 (WRITE) ExceptionInformation[1]=0x0000000000000000 (NULL)
rsi=0x80000001 (POISON_WIDTH) r13=0x10 (POISON_HEIGHT=16) rcx=0x0 (NULL dest)
क्रैश 2 — हीप over-READ (EMT/मुख्य थ्रेड):
ExceptionCode=0xc0000005 ExceptionAddress=VBoxC.dll+0x000d1194
ExceptionInformation[0]=0 (READ) ExceptionInformation[1]=0x00000263cefe8fd0
rax=0x80000001 (POISON_WIDTH) r12=0x10000001 ((WIDTH+7)/8 = AND स्कैनलाइन चौड़ाई)
r13=0x10 (POISON_HEIGHT=16) r8=0x80000001 (POISON_WIDTH)
चूँकि होस्ट 64-बिट है, मुझे नहीं लगता कि यह एक शोषण योग्य समस्या है। "एक्सप्लॉइट" के लिए, गेस्ट पर यह करें:
# Guest: build and load
cd /path/to/poc
make
sudo insmod gfx1_exploit.ko