
CVE-2026-46316 अतिथि-से-होस्ट KVM/arm64 एस्केप एक्सप्लॉइट जो vGIC-ITS एमुलेशन में एक रेस कंडीशन का शोषण करके एक अनप्रिविलेज्ड अतिथि से होस्ट कर्नेल कोड निष्पादन प्राप्त करता है।

यह दस्तावेज़ ITScape (CVE-2026-46316) भेद्यता का वर्णन करता है, जिसे Hyunwoo Kim (@v4bel) द्वारा रिपोर्ट और पैच किया गया था। यह एक KVM पलायन भेद्यता है जो एक अतिथि को KVM/arm64 वातावरण में होस्ट से बचने और होस्ट पर कर्नेल (रूट) विशेषाधिकार के साथ कमांड चलाने की अनुमति देती है। सार्वजनिक ज्ञान के अनुसार, यह KVM/arm64 को लक्षित करने वाला पहला अतिथि-से-होस्ट पलायन शोषण अनुसंधान है।
ITScape KVM/arm64 के vGIC-ITS (इंटरप्ट ट्रांसलेशन सर्विस) अनुकरण में एक रेस स्थिति का शोषण करता है। यह बग को केवल अतिथि-पक्षीय क्रियाओं से ट्रिगर करता है ताकि होस्ट से बच सके, और यह KVM/arm64 होस्टों के अतिथि-होस्ट पृथक्करण को खतरे में डाल सकता है जो अविश्वसनीय अतिथियों को स्वीकार करते हैं, विशेष रूप से मल्टी-टेनेंट arm64 पब्लिक क्लाउड।
सामान्यतः प्रकाशित QEMU पलायनों के विपरीत, यह बग QEMU उपयोगकर्ता-स्थान के बजाय इन-कर्नेल KVM में रहता है, इसलिए यह QEMU के अनुकरण से स्वतंत्र रूप से काम करता है, और यह एक उपयोगकर्ता प्रक्रिया (जैसे QEMU) के विशेषाधिकार के बजाय होस्ट कर्नेल विशेषाधिकार के साथ होस्ट पर कमांड चला सकता है।
विस्तृत तकनीकी जानकारी के लिए, यहाँ देखें।
[!NOTE] इस भेद्यता को [email protected] पर रिपोर्ट करने के बाद, सहमत प्रतिबंध समाप्त हो गया है, इसलिए यह ITScape दस्तावेज़ अब प्रकाशित किया गया है। प्रकटीकरण समयरेखा के लिए, तकनीकी विवरण दस्तावेज़ देखें।
सुरक्षित परीक्षण के लिए, PoC को QEMU TCG के अंतर्गत चलाने की अनुशंसा की जाती है। (भेद्यता को ट्रिगर करने का QEMU से कोई लेना-देना नहीं है।) QEMU TCG के अंतर्गत चलने पर, PoC की निम्नलिखित संरचना होती है।
QEMU TCG: emulates an arm64 CPU (including EL2) so an arm64 kernel runs as the KVM host
└─ arm64 Host Kernel: the KVM host and the escape target
└─ poc: opens the HOST's /dev/kvm and creates one guest VM "G" (uid=1000)
└─ 1. G's guest code (run by poc via KVM_RUN) performs GIC/ITS MMIO
2. traps into the HOST's in-kernel KVM -> double-put -> HOST kernel code-exec
यह PoC एक पूरी तरह से हथियारबंद शोषण नहीं है जो तुरंत arm64 क्लाउड वातावरण में चलता है, बल्कि प्रदर्शन कोड है जो भेद्यता और kvm सेल्फटेस्ट के ऊपर पूर्ण शोषण श्रृंखला को पुन: उत्पन्न करता है। एक हमलावर जो लक्ष्य क्लाउड के वर्चुअलाइजेशन स्टैक कार्यान्वयन को जानता है, उसे हथियारीकरण में संक्रमण स्वयं कठिन नहीं लगेगा, लेकिन इसमें सेल्फटेस्ट के होस्ट-पक्षीय प्रत्यक्ष निर्माण को एक वास्तविक अतिथि-संचालित पथ पर पोर्ट करना और पतों, गैजेट, ऑफसेट, रेस टाइमिंग आदि को लक्ष्य कर्नेल संस्करण और कॉन्फिग में ट्यून करना शामिल है। एक हथियारबंद वास्तविक दुनिया का शोषण मौजूद है लेकिन जारी नहीं किया जा रहा है।
# ./build.sh <linux>/tools/testing/selftests/kvm
# ./qemu.sh <kernel-image> <initramfs>
# ./poc
...
[+] /ITScape created by the host kernel (owner uid=0). verify: ls -la /ITScape
# ls -la /ITScape
-rw-r--r-- 1 0 0 0 Jun 9 00:02 /ITScape
यह PoC सटीक जानकारी प्रदान करने के लिए है। इसका उपयोग उन सिस्टमों पर न करें जिनका परीक्षण करने के लिए आप अधिकृत नहीं हैं।
ITScape (CVE-2026-46316) 8201d1028caa (2024-04-25) से 13031fb6b835 (2026-06-05) तक की सीमा को कवर करता है।
यदि आप एक arm64 KVM होस्ट संचालित करते हैं जो मल्टी-टेनेंट अतिथियों को स्वीकार करता है, या उसके ऊपर एक इंस्टेंस का उपयोग करते हैं, तो जांचें कि 13031fb6b835 पैच होस्ट कर्नेल पर लागू है (संचालक सीधे, किरायेदार अपने प्रदाता के माध्यम से)। साथ ही, चूंकि यह एक नई भेद्यता श्रेणी है, अधिक वेरिएंट और अनुवर्ती भेद्यताओं की उम्मीद है, इसलिए सतर्क रहें। ऐसा कहने के बाद, आपको यह अंतर करने की आवश्यकता होगी कि क्या कोई अनुवर्ती भेद्यता वास्तव में होस्ट-पक्षीय कार्रवाई के बिना केवल अतिथि क्रियाओं से ट्रिगर की जा सकती है, और क्या यह वास्तव में शोषणीय है।
नहीं। भेद्यता arch/arm64/kvm/vgic/ में है। यदि आप arm64 KVM होस्ट पर नहीं हैं, तो आपको इस भेद्यता के बारे में चिंता करने की आवश्यकता नहीं है।
हाँ। GIC/ITS MMIO चलाने के लिए गेस्ट कर्नेल (EL1) विशेषाधिकार की आवश्यकता है। जब आपको पब्लिक क्लाउड पर एक इंस्टेंस आवंटित किया जाता है, तो आपके पास आमतौर पर अपने VM पर रूट होता है, इसलिए यह संतुष्ट है। बिना गेस्ट रूट वाले परिदृश्य में, इसे Dirty Frag जैसे LPE के साथ जोड़ा जाना चाहिए।