
CVE-2021-33624 के लिए अवधारणा का प्रमाण
संकलन करें
gcc -pthread -o bpf_spectre_type_confusion bpf_spectre_type_confusion.c -Wall -ggdb -std=gnu99
निष्पादित करें
(sudo) ./bpf_spectre_type_confusion 1 2 ffffffffa4925620 0x10
जहाँ 1 और 2 CPU थ्रेड्स हैं जो दो अलग-अलग हार्डवेयर कोर पर चलते हैं, ffffffffa4925620 वह लक्ष्य मेमोरी है जिसे हम लीक करना चाहते हैं और 0x10 लीक किए जाने वाले बाइट्स की संख्या है। एक्सप्लॉइट ठीक किया गया है लेकिन कोड को sudo के रूप में निष्पादित करके परिणाम देखना अभी भी संभव है, क्योंकि प्रतिउपाय केवल गैर-sudo स्थिति में लागू किए जाते हैं।
लीक के लिए उदाहरण पता sudo cat /proc/kallsyms | grep core_pattern से प्राप्त किया जा सकता है और अपेक्षित परिणाम cat /proc/sys/kernel/core_pattern से देखा जा सकता है।
DIV निर्देशों (शून्य से विभाजन अपवादों से बचने के लिए आंतरिक रूप से एक शाखा शामिल करने के लिए पैच किए गए) का उपयोग करके शाखा पूर्वानुमानक को गलत तरीके से प्रशिक्षित करना पॉटर द्वारा अपने शोध के दौरान खोजा गया था। संदर्भ https://www.openwall.com/lists/oss-security/2021/06/21/1
जान हॉर्न को विशेष धन्यवाद, जिन्होंने अपने प्रारंभिक शोध में इस एक्सप्लॉइट कोड की नींव विकसित की (https://bugs.chromium.org/p/project-zero/issues/detail?id=1711)