
CVE-2021-3156(sudoのヒープベースのバッファオーバーフロー)のエクスプロイトで、RISC-V Linuxシステム向けの再現可能なQEMUベースのテスト環境を備え、ルートへのローカル権限昇格を可能にします。
sudo:1.8.31
glibc:2.31
Linux:4.18 または 5.10.167-gee203559bc0b-dirty
簡単のため、Linux をコンパイルする際、initramfs 方式を使用せず、本リポジトリで提供されている rootfs.img をルートディレクトリとして起動します。内部には sudo および nss サービスが正常に動作するために必要な設定ファイルが含まれており、非常にシンプルなディストリビューションです。
DASICS_QEMU が提供する 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 は権限昇格を実現し、安定して再現可能です。