लिनक्स मिन्ट र एलिमेन्टरी ओएसलाई असर गर्ने sudo रूट जोखिम

उपयोगिता मा sudo, अन्य प्रयोगकर्ताहरूको तर्फबाट आदेशहरूको कार्यान्वयन व्यवस्थित गर्न प्रयोग गरियो, पहिचान गरियो जोखिम (CVE-2019-18634), जसले तपाईंलाई रूट प्रयोगकर्तालाई प्रणालीमा आफ्नो विशेषाधिकारहरू बढाउन अनुमति दिन्छ। /etc/sudoers फाइलमा "pwfeedback" विकल्प प्रयोग गर्दा sudo 1.7.1 को रिलीज पछि मात्र समस्या देखा पर्दछ, जुन पूर्वनिर्धारित रूपमा असक्षम गरिएको छ तर Linux Mint र Elementary OS जस्ता केही वितरणहरूमा सक्षम गरिएको छ। विमोचनमा मुद्दा फिक्स sudo १.1.8.31.।, केहि घण्टा अघि प्रकाशित। वितरण किटहरूमा जोखिम अस्पष्ट रहन्छ।

"pwfeedback" विकल्पले पासवर्ड प्रविष्ट गर्दा प्रत्येक प्रविष्ट गरिएको क्यारेक्टर पछि "*" क्यारेक्टरको प्रदर्शन सक्षम गर्दछ। किनकि गल्ती tgetpass.c फाइलमा परिभाषित getln() प्रकार्यको कार्यान्वयनमा, निश्चित सर्तहरूमा मानक इनपुट स्ट्रिम (stdin) मार्फत पास गरिएको धेरै ठूलो पासवर्ड स्ट्रिङ आवंटित बफरमा फिट नहुन सक्छ र स्ट्याकमा अन्य डाटा अधिलेखन गर्न सक्छ। सुडो कोड रूटको रूपमा चलाउँदा ओभरफ्लो हुन्छ।

समस्याको सार यो हो कि इनपुटको समयमा विशेष क्यारेक्टर ^U (लाइन क्लियरिङ) प्रयोग गर्दा र लेखन अपरेशन असफल भएमा, आउटपुट "*" क्यारेक्टरहरू खाली गर्न जिम्मेवार कोडले उपलब्ध बफर साइजमा डेटा रिसेट गर्छ, तर गर्दैन। सूचकलाई बफरमा प्रारम्भिक मान हालको स्थितिमा फर्काउनुहोस्। शोषणमा योगदान पुर्‍याउने अर्को कारक भनेको "pwfeedback" मोडको स्वचालित असक्षमताको अभाव हो जब डाटा टर्मिनलबाट आउँदैन, तर इनपुट स्ट्रिम मार्फत (यो त्रुटिले रेकर्डिङ त्रुटिको लागि अवस्था सिर्जना गर्न अनुमति दिन्छ, उदाहरणका लागि, प्रणालीहरूमा। दिशाहीन अज्ञात च्यानलहरू पढ्ने च्यानलको अन्त्यमा लेख्ने प्रयास गर्दा त्रुटि हुन्छ)।

एक आक्रमणकर्तासँग स्ट्याकमा डाटा अधिलेखनमा पूर्ण नियन्त्रण भएकोले, यो शोषण सिर्जना गर्न गाह्रो छैन जसले उसलाई आफ्नो विशेषाधिकारहरू रूट गर्न अनुमति दिन्छ। sudo permissions वा sudoers मा प्रयोगकर्ता-विशिष्ट सेटिङहरू भए पनि समस्या कुनै पनि प्रयोगकर्ताद्वारा शोषण गर्न सकिन्छ। समस्यालाई रोक्नको लागि, तपाईंले /etc/sudoers मा कुनै "pwfeedback" सेटिङ छैन भनेर सुनिश्चित गर्नुपर्छ र आवश्यक भएमा, यसलाई असक्षम गर्नुहोस् ("पूर्वनिर्धारित ! pwfeedback")। यदि त्यहाँ समस्या छ भने जाँच गर्न, तपाइँ कोड चलाउन सक्नुहुन्छ:

$ perl -e 'print(("A" x 100 . "\x{00}") x 50)' | sudo -S आईडी
पासवर्ड: विभाजन त्रुटि

स्रोत: opennet.ru

एक टिप्पणी थप्न