ld.so OpenBSD मा जोखिम

गतिशील लोडर ld.so, OpenBSD सँग समावेश, केहि सर्तहरूमा, हुन सक्छ, SUID/SGID- एप्लिकेसनहरूले LD_LIBRARY_PATH वातावरण चर छोड्छ र यसरी उन्नत विशेषाधिकारहरूसँग चलिरहेको प्रक्रियाको सन्दर्भमा तेस्रो-पक्ष कोड लोड गर्न अनुमति दिन्छ। भेद्यता फिक्स गर्ने प्याचहरू रिलीजको लागि उपलब्ध छन् 6.5 и 6.6। बाइनरी प्याच (syspatch) amd64, i386 र arm64 प्लेटफर्महरू पहिले नै उत्पादनमा छन् र यो समाचार प्रकाशित हुँदासम्म डाउनलोडको लागि उपलब्ध हुनुपर्छ।

समस्याको सार: सञ्चालनको क्रममा, ld.so ले पहिले वातावरणबाट LD_LIBRARY_PATH चरको मान निकाल्छ र, _dl_split_path() प्रकार्य प्रयोग गरेर, यसलाई स्ट्रिङको एर्रेमा परिणत गर्छ - डाइरेक्टरीहरूमा जाने बाटोहरू। यदि यो पछि जान्छ कि हालको प्रक्रिया SUID/SGID एप्लिकेसन द्वारा सुरु भएको हो, तब सिर्जना गरिएको एरे र, वास्तवमा, LD_LIBRARY_PATH चर खाली गरिन्छ। एकै समयमा, यदि _dl_split_path() मेमोरी समाप्त भयो (जुन वातावरण चरहरूको आकारमा स्पष्ट 256 kB सीमाको कारणले गाह्रो छ, तर सैद्धान्तिक रूपमा सम्भव छ), तब _dl_libpath चरले NULL मान प्राप्त गर्नेछ, र त्यसपछिको जाँचहरू यस चरको मानले _dl_unsetenv("LD_LIBRARY_PATH") मा कल छोड्न बाध्य पार्छ।

विज्ञहरूले भेट्टाएको जोखिम क्वालिज, साथै धेरै पहिले खुलासा समस्याहरू। सुरक्षा अनुसन्धाताहरूले जोखिम पहिचान गरेका थिए कि समस्या कति चाँडो समाधान भयो: एक प्याच तयार भयो र OpenBSD परियोजनाले सूचना प्राप्त गरेपछि तीन घण्टा भित्र अद्यावधिकहरू जारी गरियो।

थप्नुहोस्: समस्यालाई नम्बर तोकिएको छ CVE-2019-19726। ओएसएस-सुरक्षा मेलिङ सूचीमा बनाइएको आधिकारिक घोषणाOpenBSD 6.6, 6.5, 6.2 र 6.1 आर्किटेक्चरहरूमा चलिरहेको प्रोटोटाइप शोषण सहित
amd64 र i386 (शोषण अन्य वास्तुकलाको लागि अनुकूलित गर्न सकिन्छ)।
यो मुद्दा पूर्वनिर्धारित स्थापनामा शोषणयोग्य छ र chpass वा passwd suid उपयोगिताहरू चलाउँदा पुस्तकालय प्रतिस्थापन मार्फत मूल रूपमा कोड कार्यान्वयन गर्न विशेषाधिकार प्राप्त स्थानीय प्रयोगकर्तालाई अनुमति दिन्छ। सञ्चालनको लागि आवश्यक कम मेमोरी अवस्थाहरू सिर्जना गर्न, setrlimit मार्फत RLIMIT_DATA सीमा सेट गर्नुहोस्।

स्रोत: opennet.ru

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