
CVE-2023-44452, CVE-2023-51698: CBT फ़ाइल पार्सिंग आर्गुमेंट इंजेक्शन जिसने लोकप्रिय Linux डिस्ट्रोस को प्रभावित किया
MATE, Cinnamon, और कुछ Xfce डेस्कटॉप वातावरण वाले लोकप्रिय Linux ऑपरेटिंग सिस्टम को प्रभावित करने वाली एक गंभीर वन-क्लिक RCE/कमांड इंजेक्शन भेद्यता।
प्रभावित ऑपरेटिंग सिस्टम:
Linux Mint Kali Linux (सुरक्षा पेशेवरों, शोधकर्ताओं के बीच लोकप्रिय OS) Parrot OS (सुरक्षा पेशेवरों, शोधकर्ताओं के बीच लोकप्रिय OS) Ubuntu-Mate Xubuntu Fedora Cinnamon Fedora Mate Manjaro Mate Manjaro Cinnamon Ubuntu Kylin (आधिकारिक चीनी Ubuntu) Kylin OS V10 (OS जो चीनी सरकारी क्षेत्रों में उपयोग किया जाता है)
और अन्य MATE, Cinnamon, और कुछ Xfce डेस्कटॉप वातावरण।
प्रभावित सॉफ़्टवेयर घटक: सभी संस्करण जिनमें Atril डॉक्यूमेंट व्यूअर (MATE वातावरण के लिए डिफ़ॉल्ट डॉक रीडर, लोकप्रिय डॉक रीडरों में से एक) और Xreader डॉक्यूमेंट व्यूअर (Linux Mint में डिफ़ॉल्ट डॉक रीडर) के नवीनतम संस्करण शामिल हैं
भेद्यता सारांश:
यह भेद्यता दूरस्थ हमलावरों को Linux Mint Xreader के प्रभावित इंस्टॉलेशन पर मनमाना कोड निष्पादित करने की अनुमति देती है। इस भेद्यता का शोषण करने के लिए उपयोगकर्ता की सहभागिता आवश्यक है, जिसमें लक्ष्य को एक दुर्भावनापूर्ण पृष्ठ पर जाना या एक दुर्भावनापूर्ण फ़ाइल खोलनी होती है।
विशिष्ट दोष CBT फ़ाइलों के पार्सिंग के भीतर मौजूद है। समस्या सिस्टम कॉल निष्पादित करने से पहले उपयोगकर्ता द्वारा प्रदान की गई स्ट्रिंग के उचित सत्यापन की कमी के कारण उत्पन्न होती है। एक हमलावर वर्तमान उपयोगकर्ता के संदर्भ में कोड निष्पादित करने के लिए इस भेद्यता का लाभ उठा सकता है।
यह भेद्यता Atril और Xreader में कॉमिक बुक दस्तावेज़ों (.cbr, .cbz, .cbt, .cb7) को संभालने के लिए जिम्मेदार एक खराब कोड सेगमेंट के कारण है। कॉमिक बुक दस्तावेज़ केवल ऐसे संग्रह हैं जिनमें छवियाँ होती हैं। यहाँ की भेद्यता का शोषण एक दुर्भावनापूर्ण रूप से तैयार CBT दस्तावेज़ का उपयोग करके किया जा सकता है जो एक TAR संग्रह है।
मूल कारण - दोनों डॉक व्यूअरों में भेद्य कोड सेगमेंट (comics-document.c):
static const ComicBookDecompressCommand command_usage_def[] = {
/* RARLABS unrar */
{"%s p -c- -ierr --", "%s vb -c- -- %s", NULL , FALSE, NO_OFFSET},
/* GNA! unrar */
{NULL , "%s t %s" , "%s -xf %s %s" , FALSE, NO_OFFSET},
/* unzip */
{"%s -p -C --" , "%s %s" , NULL , TRUE , OFFSET_ZIP},
/* 7zip */
{NULL , "%s l -- %s" , "%s x -y %s -o%s", FALSE, OFFSET_7Z},
/* tar */
{"%s -xOf" , "%s -tf %s" , NULL , FALSE, NO_OFFSET},
/* UNARCHIVER */
{"unar -o -" , "%s %s" , NULL , FALSE, NO_OFFSET}
};
उपरोक्त कोड को देखकर, हम देख सकते हैं कि डीकंप्रेसन के लिए शेल कमांड उपयोग किए जाते हैं। /* tar */ अनुभाग को देखें, यह वास्तव में निम्नलिखित शेल कमांड को कॉल करता है, "tar -xOf -tf "। यह CBT दस्तावेज़ के अंदर प्रत्येक छवि को देखने/लोड करने के लिए है। इस व्यवहार का शोषण tar प्रोग्राम के '--checkpoint-action' विकल्प का उपयोग करके किया जा सकता है, जिससे CBT दस्तावेज़ के अंदर की एक छवि का नाम '--checkpoint-action=EXEC=bash -c "whoami>/tmp/who.txt";.jpg' जैसा रखकर लक्ष्य पर मनमाना कमांड निष्पादित किया जा सकता है।
यह भेद्यता पहले 2017 में Evince डॉक्यूमेंट व्यूअर (GNOME का डिफ़ॉल्ट डॉक रीडर) में पाई गई थी। चूँकि Atril और Xreader Evince के फोर्क हैं, यह भेद्यता Atril और Xreader दोनों में मौजूद थी। Atril की टीम ने उस समय एक कोड जोड़कर भेद्यता को ठीक किया जो CBT फ़ाइल के नाम में "--checkpoint-action=" होने पर Atril की प्रक्रिया को समाप्त कर देता है। निम्नलिखित पैच था (comics-document.c) (पंक्ति - 983):
extract_argv (EvDocument *document, gint page)
{
ComicsDocument *comics_document = COMICS_DOCUMENT (document);
char **argv;
char *command_line, *quoted_archive, *quoted_filename;
GError *err = NULL;
if (g_strrstr (comics_document->page_names->pdata[page], "--checkpoint-action="))
{
g_warning ("File unsupported\n");
gtk_main_quit ();
}
जैसा कि आप देख सकते हैं, यह कंसोल पर "File Unsupported" संदेश फेंकता है और पृष्ठ/फ़ाइलनाम में "--checkpoint-action=" देखने पर समाप्त हो जाता है। मैंने देखा कि यह केवल एक खाली फ़ाइल या वास्तव में छोटी इमेज फ़ाइल के साथ काम करता है, और यदि हम अधिक बाइट्स वाली बड़ी फ़ाइल प्रदान करते हैं, तो "gtk_main_quit ();" फ़ंक्शन विफल हो जाता है, इसलिए यह चलता रहता है, जिससे इंजेक्ट किया गया मनमाना कमांड निष्पादित हो जाता है।
MATE डेस्कटॉप वातावरण में, कई XFCE और हल्के डेस्कटॉप वातावरण (Kali, Parrot, Xubuntu, Ubuntu Mate, Kylin, Fedora Mate, Manjaro Mate जैसे OS सहित), इस भेद्यता का शोषण केवल एक लिंक/URL भेजकर किया जा सकता है क्योंकि इन ऑपरेटिंग सिस्टम/वातावरणों में Atril है और Atril में atril-previewer नामक एक अतिरिक्त घटक है जो दस्तावेज़ को खोले या क्लिक किए बिना भी शोषण को ट्रिगर करेगा। एक हमलावर एक वेबपेज तैयार कर सकता है जो लक्ष्य उपयोगकर्ता के वेबपेज पर जाने पर तुरंत तैयार CBT फ़ाइल को लक्ष्य सिस्टम पर डाउनलोड कर देता है, और आजकल नवीनतम Firefox ब्राउज़र उपयोगकर्ता की पुष्टि के बिना डिफ़ॉल्ट रूप से स्वचालित रूप से डाउनलोड करता है, जब उपयोगकर्ता अपनी डाउनलोड्स निर्देशिका में नेविगेट करता है तो पेलोड निष्पादित हो जाएगा, जिससे हमलावर को शेल मिल जाता है।
Linux Mint (Cinnamon डेस्कटॉप वातावरण) में, लक्ष्य उपयोगकर्ता को पेलोड ट्रिगर करने के लिए दस्तावेज़ खोलना होगा क्योंकि Linux Mint Xreader का उपयोग करता है और Xreader में प्रीव्यूअर नहीं है।
मैंने इस सबमिशन के साथ एक ज़िप संग्रह (doctTar-inject_exploit.zip) में पूरी तरह से काम करने वाला एक्सप्लॉइट और एक डेमो वीडियो संलग्न किया है।
डेमो वीडियो में, निम्नलिखित परिदृश्य है: हमलावर मशीन - Kali Linux पीड़ित मशीन - Kali Linux नवीनतम संस्करण (2023.3) पीड़ित मेरे एक्सप्लॉइट स्क्रिप्ट द्वारा उत्पन्न दुर्भावनापूर्ण URL/लिंक पर जाता है
एक्सप्लॉइट निर्भरताएँ: poppler-utils कृपया अपनी Linux मशीन (Kali पसंदीदा) पर एक्सप्लॉइट स्क्रिप्ट चलाने से पहले poppler-utils इंस्टॉल करें। इंस्टॉलेशन: apt install poppler-utils।