
2 जनवरी 2018 (CVE-2017-5753 और CVE-2017-5715) "भूत" Spectre भेद्यता शोषण
2 जनवरी 2018 (CVE-2017-5753 और CVE-2017-5715) "भूत" Spectre भेद्यता शोषण उदाहरण
हम टेक्स्ट "The Magic Words are Squeamish Ossifrage." को मेमोरी में रखते हैं, फिर हम भेद्यता का उपयोग करके इसे पढ़ने का प्रयास करते हैं। यदि सिस्टम हमले के लिए संवेदनशील है, तो आप मानक आउटपुट में वही टेक्स्ट देखेंगे।
इस कोड में, यदि victim_function() में संकलन निर्देश सख्त प्रोग्राम क्रम में निष्पादित होते हैं, तो फ़ंक्शन केवल array1[0..15] से पढ़ता है, क्योंकि array1 का आकार = 16 है। हालांकि, निष्पादन समय का पढ़ने के समय से अधिक होना संभव है। पढ़ने की मेमोरी byte() फ़ंक्शन victim_function() को कई प्रशिक्षण कॉल करता है, ताकि शाखा पूर्वानुमानक x के वैध मान की उम्मीद करे, फिर सीमा से बाहर x को कॉल करता है। सशर्त शाखा की भविष्यवाणी नहीं की जा सकती, और बाद का अनुमानित निष्पादन सीमा से बाहर x का उपयोग करके एक रहस्यमय बाइट पढ़ता है। फिर, पूर्वानुमान कोड array2[array1[x] * 512] से पढ़ता है, जिससे array1[x] का मान कैश में लीक हो जाता है। हमले को पूरा करने के लिए, एक सरल फ्लश+प्रोब का उपयोग करके पहचाना जाता है कि array2 किस कैश लाइन में है, जिससे मेमोरी सामग्री का पता चलता है। हमला कई बार दोहराया जाता है, इसलिए भले ही लक्ष्य बाइट शुरू में कैश न हुई हो, पहली पुनरावृत्ति इसे कैश में लाएगी। i7 सरफेस प्रो 3 में, अनुकूलित कोड लगभग 10 kb/सेकंड की गति से पढ़ता है।