
Эксплойт для CVE-2021-3156 (кучевое переполнение буфера в sudo) позволяющий локальное повышение привилегий до root, с воспроизводимой средой тестирования на базе QEMU для систем Linux на архитектуре RISC-V.
sudo: 1.8.31
glibc: 2.31
Linux: 4.18 или 5.10.167-gee203559bc0b-dirty
Для удобства при компиляции Linux не используйте initramfs, а используйте rootfs.img, предоставленный в этом репозитории, в качестве корневого каталога для загрузки. Внутри он содержит необходимые конфигурационные файлы для поддержки работы sudo и службы nss, что представляет собой чрезвычайно простой дистрибутив.
Используйте qemu из DASICS_QEMU с rootfs.img в качестве корневого каталога для загрузки bbl. Кроме того, можно использовать OpenSBI для загрузки linux. Пример команды:
#!/bin/sh
qemu-system-riscv64 -M virt -m 1G \
-cpu rv64 \
-nographic \
-kernel bbl \
-drive file=rootfs.img,format=raw,id=hd0 \
-device virtio-blk-device,drive=hd0 \
-append "console=ttyS0 rw root=/dev/vda" \
-bios none -s
После входа в командную строку busybox выполните следующие команды:
$ su wanghan
$ cd
$ whoami
$ ./expolit
$ whoami
Так как система после загрузки в командную строку уже имеет права root, вы можете легко изменить пароль с помощью passwd.
Видно, что expolit выполняет повышение привилегий и стабильно воспроизводится.