
Exploit für CVE-2021-3156 (sudo Heap-basierter Pufferüberlauf), der eine lokale Rechteausweitung auf Root ermöglicht, mit einer reproduzierbaren QEMU-basierten Testumgebung für RISC-V-Linux-Systeme.
sudo:1.8.31
glibc:2.31
Linux:4.18 oder 5.10.167-gee203559bc0b-dirty
Um es bequem zu machen, darf beim Kompilieren von Linux nicht die initramfs-Methode verwendet werden, stattdessen wird das in diesem Repository bereitgestellte rootfs.img als Root-Verzeichnis gestartet. Es enthält die notwendigen Konfigurationsdateien, um sudo und den nss-Dienst ordnungsgemäß zu unterstützen, und ist eine extrem einfache Distribution.
Verwenden Sie den von DASICS_QEMU bereitgestellten qemu, um bbl mit rootfs.img als Root-Verzeichnis zu starten. Alternativ kann auch OpenSBI verwendet werden, um linux zu starten. Beispielbefehl:
#!/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
Nach dem Betreten der Busybox-Befehlszeile führen Sie die folgenden Befehle aus:
$ su wanghan
$ cd
$ whoami
$ ./expolit
$ whoami
Da das System nach dem Start in die Befehlszeile root-Berechtigungen hat, kann man zu diesem Zeitpunkt problemlos das Passwort mit passwd ändern.
Man sieht, dass das Exploit die Rechteerweiterung erreicht und stabil reproduziert werden kann.