
CVE-2016-0728 के लिए एक परीक्षण मंच, Linux में एक रेफ़काउंट लीक/ओवरफ़्लो बग
यह रिपॉजिटरी CVE-2016-0728 के लिए एक परीक्षण प्रोग्राम रखता है, जो लिनक्स में एक refcount लीक और ओवरफ्लो बग है, जो use-after-free की ओर ले जाता है।
यह बग खोजा और समझाया गया Perception Point द्वारा। मैं उनसे संबद्ध नहीं हूँ।
Welcome to the CVE-2016-0728 testbed
sizeof(struct msg_msg) == 0x30, sizeof(struct key) == 0xb8
PID: 27673, UID: (1000/1000)
Keyring: 1b66e5d6, "test-1a328d6e"
Usage: 1
Press a key: (f)ork (i)ncref (a)uto-incref (r)evoke (h)eap-spray (s)hell (q)uit
मेरे परीक्षण सिस्टम पर, निम्नलिखित तरीके से रूट शेल प्राप्त किया जा सकता है:
revoke को कॉल करेंexecl("/bin/sh", "sh", NULL)मैंने watch -n0.1 cat /proc/keys चलाना उपयोगी पाया ताकि देख सकूं कि क्या हो रहा है।
यह कोड केवल x86-64 पर परीक्षण किया गया है, लेकिन यह अन्य आर्किटेक्चर पर भी चलना चाहिए, क्योंकि मैंने मैजिक ऑफसेट का उपयोग नहीं किया, बल्कि लिनक्स हेडर्स से संरचना परिभाषाएँ कॉपी कीं और sizeof का उपयोग किया (सिवाय इसके कि मैंने prepare_kernel_cred और commit_creds के पतों को हार्ड-कोड किया)।