प्रौद्योगिकी

Ubuntu 26.04 में Rust sudo डिफ़ॉल्ट बना — 46 साल पुरानी C सुरक्षा खामी का अंत

Adrian Kessler

Ubuntu 26.04 LTS, जो अप्रैल 2026 में जारी हुआ, sudo-rs को लिनक्स पर सिस्टम-स्तरीय पहुँच नियंत्रित करने वाले टूल का डिफ़ॉल्ट कार्यान्वयन बना देता है। जब किसी उपयोगकर्ता या प्रक्रिया को ऊँचे विशेषाधिकारों की आवश्यकता होती है — सॉफ़्टवेयर इंस्टॉल करना, सिस्टम फ़ाइलों में बदलाव करना, किसी सेवा को रूट के रूप में चलाना — तो sudo ही द्वारपाल है। मूल sudo C में लिखा गया था। sudo-rs Rust में पूरी तरह से पुनर्लेखन है, और अब यह दुनिया के सबसे व्यापक रूप से उपयोग किए जाने वाले लिनक्स वितरण पर डिफ़ॉल्ट रूप से भेजा जाने वाला संस्करण है।

मूल sudo 1980 में लिखा गया था। उस समय में, C कोडबेस ने अपनी सुविधाओं के साथ-साथ कुछ और भी जमा कर लिया: मेमोरी-प्रबंधन कमज़ोरियों का एक वर्ग जिसे Rust कंपाइलर स्तर पर समाप्त कर देता है। सबसे महत्वपूर्ण था CVE-2021-3156, जिसे Baron Samedit नाम दिया गया। यह कमज़ोरी लगभग दस वर्षों तक अनदेखी रही, जिससे हर प्रमुख लिनक्स वितरण पर स्थानीय विशेषाधिकार वृद्धि संभव हो गई। एक स्थानीय हमलावर गैर-रूट शेल खाते से रूट बन सकता था। Canonical ने खुलासे के 24 घंटे के भीतर इसे पैच कर दिया। लेकिन जिस वास्तुशिल्पीय स्थिति ने इसे संभव बनाया — C का मैनुअल मेमोरी प्रबंधन — उसे पैच नहीं किया गया।

Rust जो बदलता है वह यह नहीं है कि कोड कैसे लिखा जाता है, बल्कि यह है कि उसमें किस प्रकार के बग मौजूद हो सकते हैं। बफर ओवरफ्लो, यूज़-आफ्टर-फ्री त्रुटियाँ, और नल पॉइंटर डीरेफरेंस ऐसी कमज़ोरियों की श्रेणी हैं जिन्हें Rust कंपाइल समय पर समाप्त कर देता है — कंपाइलर इन पैटर्न वाले कोड को चलने से पहले ही अस्वीकार कर देता है। एक ऐसे सॉफ़्टवेयर के लिए जो विशेषाधिकार वृद्धि संभालता है, यह खतरे के मॉडल से एक महत्वपूर्ण बाधा को हटाने जैसा है।

sudo-rs ने 2023 में एक पूर्ण स्वतंत्र सुरक्षा ऑडिट पूरा किया। परियोजना ने C कार्यान्वयन के साथ प्रदर्शन समानता हासिल की। Canonical ने इसे पहले के Ubuntu संस्करणों में एक विकल्प के रूप में भेजना शुरू किया, फिर 26.04 में इसे डिफ़ॉल्ट बना दिया। यह चरणबद्ध दृष्टिकोण उस सावधानी को दर्शाता है जो एक ऐसे टूल को बदलने के लिए उपयुक्त है, जिसके विफल होने पर उपयोगकर्ता सिस्टम पहुँच से बाहर हो सकते हैं या हमलावरों को रूट तक पहुँच मिल सकती है।

Ubuntu 26.04 uutils coreutils भी भेजता है — ls, cat, और mv जैसे मूलभूत टूलों के Rust पुनर्लेखन। लेकिन cp, mv, और rm इस रिलीज़ में GNU C कार्यान्वयन पर ही बने रहते हैं। Canonical का तर्क: उन Rust कार्यान्वयनों में TOCTOU रेस कंडीशन डेटा विनाश का जोखिम उठाती हैं, जिसे टीम ने LTS रिलीज़ के लिए बहुत अधिक माना। यह चरणबद्ध रोलआउट ‘बस इसे Rust में फिर से लिखो’ दृष्टिकोण के बारे में कुछ ईमानदार बात उजागर करता है: टूलिंग मौजूद है, लेकिन प्रवासन के लिए केस-दर-केस सुरक्षा विश्लेषण आवश्यक है, न कि एक सामूहिक स्विच।

लिनक्स कर्नेल ने 2022 में Rust ड्राइवर कोड स्वीकार करना शुरू किया। Android टीम 2021 से नए सिस्टम कोड के लिए Rust का उपयोग कर रही है। Microsoft ने मेमोरी-संवेदनशील Windows घटकों को Rust में फिर से लिखा है। Ubuntu द्वारा sudo-rs को डिफ़ॉल्ट बनाना एक सार्थक मील का पत्थर है क्योंकि यह किसी नए ड्राइवर या वैकल्पिक घटक में प्रयोग नहीं है — यह सिस्टम पहुँच के लिए प्रमाणीकरण परत है, जो हर नए Ubuntu इंस्टॉल पर डिफ़ॉल्ट रूप से भेजी जाती है।

इस कॉन्फ़िगरेशन के तहत Ubuntu उपयोगकर्ताओं के लिए Baron Samedit उत्पन्न करने वाला CVE पैटर्न समाप्त हो जाता है। क्या अन्य प्रमुख वितरण — Debian, Red Hat, Fedora, Arch — डिफ़ॉल्ट sudo-rs की ओर Ubuntu के कदम का अनुसरण करेंगे, यह वह प्रश्न है जो परिवर्तन के पैमाने को निर्धारित करता है। sudo-rs उन सभी के लिए उपलब्ध है। Canonical ने फैसला किया कि ऑडिट परिणाम पर्याप्त थे। अगला निर्णय अन्य अनुरक्षकों का है।

टैग: , , , , ,

चर्चा

0 टिप्पणियाँ हैं।