
लिनक्स कर्नेल एक्सप्लॉइट
लिनक्स विशेषाधिकार वृद्धि जो waitid सिस्कॉल का शोषण करती है। यह एक्सप्लॉइट
@XeR_0x2A और @chaign_c द्वारा HexpressoTeam से
केवल शैक्षिक उद्देश्यों के लिए प्रस्तुत किया गया है।
यह बग 2017-05-21 को पेश किया गया था और 2017-10-09 को ठीक किया गया, 4.14.0-rc4+
ज्ञात रूप से कमजोर है।
यदि आप एक्सप्लॉइट लेखन के शुरुआती/मध्यवर्ती स्तर पर हैं, तो हम आपको प्रोत्साहित करते हैं कि
हमारे कार्यान्वयन को पढ़ने से पहले इसे स्वयं शोषण करें। यह एक बहुत अच्छा
अभ्यास है जिसमें एक आसान शोषण प्रिमिटिव (लिखने योग्य कर्नेल मेमोरी
में मनमाना लेखन) है।
हम @LiveOverflow को भी चुनौती देते हैं कि वे इसे आज़माएँ।
यहाँ विवरण है:
oss-security:
नमस्ते,क्रिस सैल्स ने पता लगाया कि जब Linux कर्नेल v4.13 में waitid() सिस्कॉल को रिफैक्टर किया गया था,
तो यह गलती से यह जाँचना बंद कर दिया कि आने वाला तर्क
उपयोगकर्ता स्थान की ओर इशारा कर रहा है। इसने स्थानीय
हमलावरों को सीधे कर्नेल मेमोरी में लिखने की अनुमति दी, जिससे
विशेषाधिकार वृद्धि हो सकती है।इस कमिट द्वारा पेश किया गया:
https://git.kernel.org/linus/4c48abe91be03d191d0c20cc755877da2cb35622मुख्य लाइन ट्री में इस कमिट के साथ ठीक किया गया:
https://git.kernel.org/linus/96ca579a1ecc943b75beba58bebb0356f6cc4b51यह जल्द ही -stable (भविष्य में v4.13.7) में ठीक किया जाना चाहिए:
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.13.yधन्यवाद,
waitid:
waitid -- एक चाइल्ड प्रोसेस की स्थिति बदलने की प्रतीक्षा करें।
int waitid(idtype_t idtype, id_t id, siginfo_t *infop, int options);
कर्नेल यह जाँच नहीं करता कि infop कर्नेल-लैंड या यूज़र-लैंड
पॉइंटर है, इसलिए हम लिखने की अनुमति वाले किसी भी कर्नेल मेमोरी पेज की मेमोरी को
अधिलेखित कर सकते हैं। मज़ेदार बात यह है कि हम केवल आंशिक रूप से नियंत्रित करते हैं कि क्या लिखा गया है।
इसे शोषण करने के एक हज़ार से अधिक तरीके हैं। हमने इस लेखन प्रिमिटिव को
नल पॉइंटर डीरेफरेंस में बदलने का निर्णय लिया। हमने
have_canfork_callback चर को कर्नेल के .BSS खंड में अधिलेखित कर दिया।
इस चर को 0 (सत्य) के अलावा किसी और मान पर सेट करने से एक अनसेट
कॉलबैक (नल) "प्रक्रिया के उजागर होने से पहले एक नए कार्य पर कॉल" हो जाएगा।
CVE साझा करने के लिए Chris Salls और @kees_cook को धन्यवाद।
@XeR_0x2A और @chaign_c द्वारा HexpressoTeam से पहला "वास्तविक दुनिया" लिनक्स कर्नेल एक्सप्लॉइट।
2017-10-22