
needrestart Python CVE-2024-48990 पर मेरा विचार
यह सरल शेल स्क्रिप्ट इस भेद्यता को काम करने के लिए सभी आवश्यक फ़ाइलें बना देती है।
पहले यह एक यादृच्छिक रूप से उत्पन्न अस्थायी फ़ाइल बनाता है जिसका उपयोग नकली __init__.so फ़ाइल को संकलित करने के लिए किया जाएगा। जब भेद्यता ट्रिगर होती है। यह फ़ाइल निष्पादित होगी और bash बाइनरी को /tmp/ribbit में कॉपी करेगी और SUID बिट सेट करेगी। फिर यह वर्तमान कार्यशील निर्देशिका में importlib निर्देशिका बनाता है। फिर यह बनाई गई अस्थायी फ़ाइल को __init__.so में संकलित करता है और उसे नई बनाई गई निर्देशिका में रखता है। अंत में यह एक और यादृच्छिक नाम वाली अस्थायी पायथन फ़ाइल बनाता है जो सोती है और भेद्यता ट्रिगर होने की प्रतीक्षा करती है। ट्रिगर होते ही यह SUID सेट bash बाइनरी को निष्पादित करेगी जिसके परिणामस्वरूप रूट शेल प्राप्त होगा।
एक बार पायथन स्क्रिप्ट शुरू हो जाने पर। needrestart को रूट अनुमतियों के साथ निष्पादित होने की आवश्यकता होती है। यह आमतौर पर apt-get का उपयोग करने पर किया जाता है।