
CVE-2025-61228 के लिए तकनीकी विश्लेषण और प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, SuperDuper! के ऑटो-अपडेट तंत्र में एक विशेषाधिकार वृद्धि भेद्यता, जिसमें हमले वेक्टर और शमन मार्गदर्शन का विस्तृत विवरण शामिल है।
यह समस्या डेवलपर के अनुमान से अधिक गंभीर प्रतीत होती है, इसलिए मैं नहीं चाहता कि यह भाग अनदेखा रह जाए। डेवलपर ने अपने ब्लॉग पर कहा:
यह तभी हो सकता है जब आपके सिस्टम पर चलने वाला कोई प्रोग्राम SuperDuper को अपडेट करने की तलाश में हो, एक वास्तविक अपडेट वैध तरीके से प्रस्तुत किया गया हो, और आप अपग्रेड पर क्लिक करें।
यह वास्तव में सच नहीं है, इस भेद्यता का शोषण करने के लिए वैध तरीके से वास्तविक अपडेट प्रस्तुत करने की आवश्यकता नहीं है। SuperDuper 3.10 और पुराने संस्करणों द्वारा प्रदान किए गए किसी भी अपडेट को कभी स्वीकार न करें! मैं इसके बारे में नीचे और विस्तार से बताता हूँ।
यह समझना भी महत्वपूर्ण है कि यह भेद्यता केवल विशेषाधिकार वृद्धि तक सीमित नहीं है, बल्कि इसमें गोपनीयता नियंत्रणों का उल्लंघन भी शामिल है। ऐसा लगता है कि डेवलपर के ब्लॉग पोस्ट से यह विवरण छोड़ दिया गया है।
डेवलपर के ब्लॉग से:
हमारा ऑटो-अपडेट तंत्र अपहृत किया जा सकता है और उसे एक पैकेज स्थापित करने के लिए राजी किया जा सकता है जो SuperDuper नहीं है।
भले ही हमने अपने इंस्टॉलर पैकेज पर हस्ताक्षर और नोटरीकरण किया हो, Gatekeeper उस नोटरीकरण की जाँच नहीं कर रहा है जब macOS के पैकेज इंस्टॉलर द्वारा इंस्टॉल किया जाता है। इस प्रकार, डाउनलोड बदला जा सकता है, और हम उसके स्थान पर वह स्थापित कर देंगे। चूंकि इंस्टॉल बढ़े हुए विशेषाधिकारों के साथ किया जा रहा है, यह एक दुर्भावनापूर्ण तृतीय-पक्ष प्रोग्राम को, जिसे आपको भी स्थापित करना होगा, आपके सिस्टम तक व्यवस्थापक पहुँच प्राप्त करने की अनुमति दे सकता है।
CVE से:
Shirt Pocket SuperDuper! V.3.10 और इससे पहले के संस्करणों में एक समस्या है जो एक स्थानीय हमलावर को सॉफ़्टवेयर अपडेट तंत्र के माध्यम से मनमाना कोड निष्पादित करने की अनुमति देती है।
यह लेखक भेद्यता का खोजकर्ता नहीं है, जिसे SuperDuper डेवलपर "गुमनाम सुरक्षा शोधकर्ता" के रूप में पहचानता है। मैं इस भेद्यता की खोज का कोई श्रेय नहीं लेता, मुझे इसका तकनीकी विश्लेषण करने में कुछ रुचि थी।
CVSS 3.1 स्कोर: 7.8 उच्च (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H)
इस भेद्यता से बचने के लिए, SuperDuper! एप्लिकेशन को हटा दें, या 3.11 अपडेट लागू करें।
चेतावनी: इस भेद्यता से बचने के लिए आपको अपडेट सीधे डेवलपर की वेबसाइट से डाउनलोड करना होगा।
यह शोषण विश्लेषण और प्रमाण-अवधारणा केवल शैक्षिक उद्देश्यों के लिए प्रदान किया गया है। इसे अपने जोखिम पर उपयोग करें।
SuperDuper डेवलपर्स ने एक ओपन-सोर्स सॉफ़्टवेयर अपडेट समाधान को लागू करने के बजाय, जो सैकड़ों डेवलपर्स और सुरक्षा पेशेवरों द्वारा परीक्षण किया गया है, अपना स्वयं का सॉफ़्टवेयर अपडेट तंत्र बनाया जो असुरक्षित शेल स्क्रिप्ट पर आधारित है जो रूट विशेषाधिकारों के साथ चलती हैं और पूर्ण डिस्क पहुँच रखती हैं। अपडेट के दौरान स्थापित होने वाले सॉफ़्टवेयर को प्रमाणित करने में विफल रहने पर, SuperDuper को हमलावर के सॉफ़्टवेयर को स्थापित करने के लिए बरगलाया जाता है। डेवलपर का फिक्स केवल इस भेद्यता के प्रमाणीकरण पहलू को संबोधित करता है, यह शेल स्क्रिप्ट के उपयोग से उत्पन्न होने वाली अंतर्निहित कमजोरियों को संबोधित नहीं करता है।
डेवलपर की टिप्पणी "Gatekeeper नोटरीकरण की जाँच नहीं कर रहा है" भ्रामक है। GateKeeper तब काम में आता है जब आप ब्राउज़र में डाउनलोड की गई किसी चीज़ को खोलने का प्रयास करते हैं, लेकिन यह किसी एप्लिकेशन के आंतरिक सॉफ़्टवेयर अपडेट तंत्र में लागू नहीं होता है। यह 100% डेवलपर की जिम्मेदारी है कि वह अपने सॉफ़्टवेयर द्वारा आपके कंप्यूटर पर डाउनलोड और इंस्टॉल की गई किसी भी चीज़ को मान्य करे – इस डेवलपर को आपको यह विश्वास न करने दें कि यह GateKeeper की विफलता है। शोषण के मूल में, एक हमलावर SuperDuper को एक वैकल्पिक पैकेज स्थापित करने के लिए धोखा दे सकता है, और यह बढ़े हुए विशेषाधिकारों के साथ होता है। संभवतः यह पूर्ण डिस्क पहुँच के साथ भी चलेगा, क्योंकि SuperDuper को कुछ भी करने के लिए पूर्ण डिस्क पहुँच की आवश्यकता होती है।
डेवलपर का ब्लॉग यह भी कहता है:
यह तभी हो सकता है जब आपके सिस्टम पर चलने वाला कोई प्रोग्राम SuperDuper को अपडेट करने की तलाश में हो, एक वास्तविक अपडेट वैध तरीके से प्रस्तुत किया गया हो, और आप अपग्रेड पर क्लिक करें।
उस टिप्पणी के साथ, मैंने मान लिया कि इस शोषण को पुन: उत्पन्न करना संभव नहीं होगा क्योंकि इसमें अपडेट तंत्र में सर्वर-साइड बदलाव शामिल होने चाहिए जो 3.11 पैच के पोस्ट के साथ किए गए होंगे। दूसरे शब्दों में, सॉफ़्टवेयर के पुराने संस्करणों को इस भेद्यता से प्रभावित होने से रोकने के लिए, निश्चित रूप से उन्होंने अपडेट तंत्र को अक्षम कर दिया है, है ना? खैर... मैंने SuperDuper का एक पुराना संस्करण डाउनलोड किया, और जब मैंने इसे खोला, तो मेरा तुरंत एक अपडेट सूचना से स्वागत किया गया† – संभावित शोषण से एक क्लिक दूर। मुझे यह बहुत दिलचस्प लगा – जो कोई भी एप्लिकेशन के पुराने संस्करण का उपयोग कर रहा है, वह इस भेद्यता से कैसे सुरक्षित रहेगा यदि ऑटो-अपडेट तंत्र अक्षम नहीं है? (यह "चेतावनी" से संबंधित है जिसका मैंने लेख की शुरुआत में उल्लेख किया था, मैं अंत में इस प्रश्न पर फिर से विचार करूँगा)
† वैसे... परिणाम वास्तव में बहुत अजीब था। अपडेट का कोई विवरण या सुरक्षा सलाहकार नहीं था, विंडो केवल स्किप और अपडेट बटन के साथ खाली थी। इसलिए पुराने उपयोगकर्ता न केवल अपडेट तंत्र को अक्षम करके शोषण से सुरक्षित नहीं हैं, बल्कि उन्हें अपडेट तंत्र के माध्यम से समस्या के बारे में भी सूचित नहीं किया जाता है।
मैं आगे बढ़ा। जब आप अपग्रेड लागू करते हैं, तो बैकएंड मैकेनिक्स उपयोगी रूप से SuperDuper लॉग में लॉग हो जाते हैं, इसलिए हम यह देखने के लिए वहाँ से शुरू करेंगे कि यह कैसे काम करता है:
Transcript : UpgradeTranscript.plist
Ext Logging : Disabled
PHASE: 1. Upgrade Application
...ACTION: Downloading upgrade package
......COMMAND => Downloading update package...
......COMMAND => Preparing update package
...ACTION: Installing upgrade package
......COMMAND => Preserving SDAgent owner and mode bits
......COMMAND => Installing upgrade package
installer[3148] <Debug>: Product archive /tmp/SuperDuper!.pkg trustLevel=350
Mac ऐप स्टोर के बाहर रहने वाले कई Mac ऐप सुरक्षित रूप से सॉफ़्टवेयर अपडेट प्रबंधित करने के लिए ओपन-सोर्स Sparkle फ्रेमवर्क का उपयोग करते हैं। SuperDuper नहीं। हम यहाँ देख सकते हैं कि उन्होंने अपना खुद का बनाया, और यह एक बढ़िया उदाहरण है कि यह अक्सर एक बुरा विकल्प क्यों होता है। सॉफ़्टवेयर अपग्रेड तंत्र शोषण के लिए प्रमुख लक्ष्य हैं, इसलिए उन्हें सुरक्षित रखने के लिए बहुत समय और विशेषज्ञता की आवश्यकता होती है। "UpgradeTranscript.plist" SuperDuper एप्लिकेशन के अंदर एक फ़ाइल का संदर्भ है जो टर्मिनल कमांड की एक श्रृंखला को निर्दिष्ट करता है जिसका उपयोग SuperDuper अपडेट को डाउनलोड और लागू करने के लिए करता है:
cat /Applications/SuperDuper\!.app/Contents/Resources/Transcripts/UpgradeTranscript.plist
<?xml version="1.0" encoding="UTF-8"?>
...
/usr/bin/curl SDHTTPproxy.Host --silent --show-error --output /tmp/superduper.tar.gz -L SDdownloadURL
cd /tmp; if [ -d superduper_install ]; then /bin/rm -rf superduper_install; fi; /bin/mkdir superduper_install; /usr/bin/tar xzf superduper.tar.gz; /bin/rm /tmp/superduper.tar.gz; if [ -d '/Library/Receipts/SuperDuper!.pkg' ]; then /bin/rm -rf '/Library/Receipts/SuperDuper!.pkg'; fi;
/usr/sbin/installer -allow -verboseR -dumplog -pkg '/tmp/SuperDuper!.pkg' -target / >&1 2>&1;
if [ ! -d '/tmp/superduper_install/SuperDuper!.app' ]; then /usr/bin/ditto -rsrc '/Applications/Utilities/SuperDuper!.app' '/tmp/superduper_install/SuperDuper!.app'; fi
/bin/rm -rf '/tmp/SuperDuper!.pkg' '/tmp/superduper_install' '/Library/Receipts/SuperDuper!.pkg'; if [ SDAppBundle.'Path != '/Applications/Utilities/SuperDuper!.app' -a -d '/Applications/Utilities/SuperDuper!.app' ]; then /bin/rm -rf '/Applications/Utilities/SuperDuper!.app'; fi
मैं इन कमांड और प्रक्रिया में कम से कम चार समस्याएँ देखता हूँ: