
sudo में CVE-2021-3156 हीप-आधारित बफर ओवरफ्लो का शोषण और शमन विश्लेषण
CVE-2021-3156, जिसे बैरॉन सेमडिट के नाम से जाना जाता है, sudo प्रोग्राम में एक हीप-आधारित बफर ओवरफ्लो भेद्यता है। यह किसी भी अनाधिकृत स्थानीय उपयोगकर्ता को प्रमाणीकरण के बिना असुरक्षित सिस्टम पर रूट विशेषाधिकार प्राप्त करने की अनुमति देता है।
यह परियोजना लक्ज़मबर्ग विश्वविद्यालय में सॉफ्टवेयर भेद्यताएँ: शोषण और शमन पाठ्यक्रम के भाग के रूप में इस भेद्यता के पूर्ण शोषण और शमन का दस्तावेजीकरण करती है।
| गुण | विवरण |
|---|---|
| CVE आईडी | CVE-2021-3156 |
| उपनाम | बैरॉन सेमडिट |
| प्रकार | हीप-आधारित बफर ओवरफ्लो |
| घटक | sudo (sudoedit मोड) |
| प्रभाव | स्थानीय विशेषाधिकार वृद्धि से रूट |
| प्रभावित संस्करण | sudo ≤ 1.8.31 (उबंटू), ≤ 1.9.5p1 (अन्य) |
| पैच किया गया संस्करण | sudo 1.8.31-1ubuntu1.5 |
| CVSS स्कोर | 7.8 (उच्च) |
OS: Ubuntu 20.04.1
sudo version: 1.8.31-1ubuntu1 (vulnerable)
libc version: 2.31
User: Non-root account
असुरक्षित अवस्था को पुन: उत्पन्न करने के लिए:
sudo apt install sudo=1.8.31-1ubuntu1
यह भेद्यता तब ट्रिगर होती है जब sudo को sudoedit मोड में सावधानीपूर्वक तैयार किए गए कमांड-लाइन तर्कों के साथ निष्पादित किया जाता है जो आंतरिक हीप बफ़र्स को ओवरफ्लो करते हैं।
एक्सप्लॉइट मेमोरी विश्लेषण के माध्यम से सूक्ष्म-ट्यून किए गए चार महत्वपूर्ण पैरामीटर का उपयोग करता है:
| पैरामीटर | आकार | उद्देश्य |
|---|---|---|
A | 56 bytes | प्रारंभिक बफर का ओवरफ्लो |
B | 54 bytes | दूसरे हीप चंक का ओवरफ्लो |
Nulls | 63 bytes | संरचना मेमोरी संरेखण |
LC_ALL | 212 bytes | पर्यावरण चर के माध्यम से हीप लेआउट नियंत्रण |
exploit_launcher.c — मुख्य एक्सप्लॉइट5 चरणों के माध्यम से भेद्यता को ट्रिगर करता है:
LC_ALL तैयार करता हैsudoedit को कॉल करता हैexploit_payload.c — दुर्भावनापूर्ण पेलोडएक्सप्लॉइट सफल होने पर _init फ़ंक्शन के माध्यम से स्वचालित रूप से निष्पादित होता है:
0 (रूट) पर सेट करता है$ make
$ ./exploit_it
[!] CVE-2021-3156 Exploit
[+] Target: Ubuntu 20.04.1 (sudo 1.8.31, libc-2.31)
[+] Parameters: A=56, B=54, Nulls=63, LC_ALL=212
[+] Launching exploit...
[+] Exploit successful. Root privileges obtained.
# whoami
root
✅ सफलतापूर्वक अनाधिकृत उपयोगकर्ता से रूट तक उन्नत किया गया।
sudo को पैच किए गए संस्करण में अपग्रेड करें:
sudo apt install sudo=1.8.31-1ubuntu1.5
अपग्रेड करने के बाद, वही एक्सप्लॉइट निष्पादित होने में विफल रहा और रूट विशेषाधिकार नहीं दिए गए — यह पुष्टि करता है कि पैच प्रभावी है।
मुख्य निष्कर्ष:
sudoजैसी सिस्टम उपयोगिताओं को अद्यतित रखना विशेषाधिकार वृद्धि हमलों को रोकने के लिए महत्वपूर्ण है।
├── exploit_launcher.c # Main exploit triggering the heap overflow
├── exploit_payload.c # Malicious payload spawning root shell
├── libnss_X/ # Malicious library loaded during exploitation
└── Makefile # Build configuration
# Build
make
# Run exploit
./exploit_it