
CVE-2022-0847(Dirty Pipe) भेद्यता शोषण
7 मार्च 2022 को मैक्स केलरमैन[2] द्वारा सार्वजनिक की गई, CVE-2022-0847 लिनक्स कर्नेल (संस्करण 5.8 से 5.16.11 के बीच) में एक कमजोरी है जो हमलावरों को केवल-पढ़ने या अपरिवर्तनीय फ़ाइलों को बदलने और पीड़ित सिस्टम पर अपने विशेषाधिकार बढ़ाने की अनुमति देती है। CVE-2022-0847 को डर्टी पाइप नाम दिया गया है और इसका CVSS स्कोर 7.8 (उच्च माना जाता है) है।
डर्टी पाइप कमजोरी को struct pipe_buffer[7] के flags विशेषता के तरीके में एक दोष के रूप में वर्णित किया गया है, जिसमें लिनक्स कर्नेल में copy_page_to_iter_pipe और push_pipe फ़ंक्शनों में उचित प्रारंभिकीकरण नहीं था, और इसलिए इसमें पुराने मान हो सकते थे। struct pipe_buffer के flags विशेषता में सेट की जा सकने वाली फ़्लैग में से एक PIPE_BUF_FLAG_CAN_MERGE नामक फ़्लैग है। यह इंगित करती है कि pipe_buffer में और डेटा का विलय अनुमत है या नहीं। इस प्रकार, जब डेटा को pipe_buffer में कॉपी किया जाता है, तो pipe_buffer में और डेटा जोड़ा जा सकता है यदि कॉपी किए गए पृष्ठ का आकार 4096 बाइट्स से कम हो।
पेज कैश संदर्भ में PIPE_BUF_FLAG_CAN_MERGE इंजेक्ट करके, पेज कैश में डेटा को ओवरराइट करना संभव हो गया, बस विशेष रूप से तैयार किए गए पाइप में नया डेटा लिखकर (यह प्रक्रिया आगे के पैराग्राफों में वर्णित की जाएगी)। इस प्रकार, एक अविशेषाधिकार प्राप्त स्थानीय उपयोगकर्ता इस दोष का उपयोग केवल-पढ़ने वाली फ़ाइलों द्वारा समर्थित पेज कैश में पृष्ठों को ओवरराइट/लिखने और इस प्रकार सिस्टम पर अपने विशेषाधिकार बढ़ाने के लिए कर सकता है।
ऐसा कहने के बाद, कमजोरी का शोषण करने के लिए, निम्नलिखित चरणों का पालन किया जाना चाहिए:
निम्नलिखित कमांड से सब कुछ संकलित करें:
make
./exploit-1
एक्सप्लॉइट 1, रिपॉजिटरी में फ़ाइल exploit-1.c में मौजूद, में /etc/passwd फ़ाइल में मौजूद रूट उपयोगकर्ता के पासवर्ड को ओवरराइट करना शामिल है (यह फ़ाइल उपयोगकर्ता खाते की जानकारी जैसे एन्क्रिप्टेड पासवर्ड रखती है) और अंत में रूट एक्सेस वाला एक टर्मिनल प्रदान करना। इसके लिए, निम्नलिखित आवश्यक था:
/etc/passwd फ़ाइल का बैकअप लें।/etc/passwd फ़ाइल को पाइप में स्थानांतरित करें और इस फ़ाइल की सामग्री को एक ज्ञात नए रूट पासवर्ड से ओवरराइट करें (जैसा कि ऊपर चरण 4 और 5 में बताया गया है)।find / -perm -4000 2>/dev/null
./exploit-2 <path-of-suid-binary>
एक्सप्लॉइट 2, रिपॉजिटरी में फ़ाइल exploit-2.c में मौजूद, में एक SUID बाइनरी को ओवरराइट और अपहरण करना शामिल है (इस प्रकार के हमले की रिपोर्ट धारा 3.5.2 में की गई थी) और अंत में रूट एक्सेस वाला एक टर्मिनल प्रदान करना। इसके लिए, निम्नलिखित आवश्यक था:
/tmp/sh) बनाता है, जो बदले में रूट एक्सेस वाला एक शेल टर्मिनल बनाती है।/tmp/sh चलाई जाती है, जिससे रूट एक्सेस वाला एक नया शेल खुलता है।./exploit-3
एक्सप्लॉइट 3, रिपॉजिटरी में फ़ाइल exploit-3.c में मौजूद, शेल रूट एक्सेस प्राप्त करने के लिए एक्सप्लॉइट 1 के समान चरणों का उपयोग करता है। अंतर यह है कि एक्सप्लॉइट 3, शेल रूट एक्सेस प्राप्त करने के बाद, हमलावर की एक सार्वजनिक SSH (सिक्योर शेल) कुंजी को /root/.ssh/authorized_keys फ़ाइल में लोड करता है और Ngrok प्लेटफ़ॉर्म का उपयोग करके SSH के लिए रिमोट एक्सेस हेतु एक TCP (ट्रांसमिशन कंट्रोल प्रोटोकॉल) टनल बनाता है।
[1] AHMED, Alexis. Privilege Escalation Techniques: Learn the art of exploiting Windows and Linux systems. Birmingham: Packt Publishing, अक्टूबर 2021.
[2] KELLERMANN, Max. The Dirty Pipe Vulnerability. उपलब्ध: https://dirtypipe.cm4all.com/. अभिगम: 23 जुलाई 2022.
[3] Exploit Database. उपलब्ध: https://www.exploit-db.com/. अभिगम: 3 अगस्त 2022.
[4] Traitor: Automatically exploit low-hanging fruit to pop a root shell. उपलब्ध: https://github.com/liamg/traitor. अभिगम: 3 अगस्त 2022.
[5] PayloadsAllTheThings. Linux - Privilege Escalation. उपलब्ध: https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Linux%20-%20Privilege%20Escalation.md#cve-2022-0847-dirtypipe. अभिगम: 3 अगस्त 2022.
[6] लिनक्स कर्नेल रिपॉजिटरी - Struct pipe_inode_info. उपलब्ध: https://github.com/torvalds/linux/blob/v5.8/include/linux/pipe_fs_i.h#L76. अभिगम: 3 अगस्त 2022.
[7] लिनक्स कर्नेल रिपॉजिटरी - Struct pipe_buffer. उपलब्ध: https://github.com/torvalds/linux/blob/v5.8/include/linux/pipe_fs_i.h#L26-L32. अभिगम: 3 अगस्त 2022.
[8] ARNTZ, Pieter. Linux "Dirty Pipe" vulnerability gives unprivileged users root access. Malwarebytes Lab. उपलब्ध: https://www.malwarebytes.com/blog/news/2022/03/linux-dirty-pipe-vulnerability-gives-unprivileged-users-root-access. अभिगम: 3 अगस्त 2022.
[9] Picus Security. Linux “Dirty Pipe” CVE-2022-0847 Vulnerability Exploitation Explained. उपलब्ध: https://www.picussecurity.com/resource/linux-dirty-pipe-cve-2022-0847-vulnerability-exploitation-explained. अभिगम: 3 अगस्त 2022.
[10] Exploit Database - Local Privilege Escalation (Dirty Pipe). उपलब्ध: https://www.exploit-db.com/exploits/50808. अभिगम: 3 अगस्त 2022.