漏洞名称: Sudo缓冲区溢出漏洞(CVE-2021-3156)
漏洞定级:高 危
漏洞描述: 在sudo中发现一个缺陷。在sudo解析命令行参数的方式中发现了基于堆的缓冲区溢出。任何本地用户(普通用户和系统用户,sudoers和非sudoers)都可以利用此漏洞,而无需进行身份验证(即,攻击者不需要知道用户的密码),利用此漏洞可以用于普通用户无差别提权,漏洞对数据机密性和完整性以及系统可用性带来严重威胁。
影响范围:
sudo: 1.8.2 - 1.8.31p2
sudo: 1.9.0 - 1.9.5p1
以非root用户登录系统,并使用命令
sudoedit -s /
- 如果响应一个以sudoedit:开头的报错,那么表明存在漏洞。
- 如果响应一个以usage:开头的报错,那么表明补丁已经生效。
通用修补建议:(注意:redhat可用最新yum更新,其他可用包更新的系统也可以尝试)
下载升级sudo软件包,下载链接为:>
sudo软件包下载地址
https://www.sudo.ws/dist/
首先查一下是否该漏洞,登录到非root用户
输入 sudoedit -s /
命令 , 返回了 sudoedit: /:不是常规文件
错误提示,所以存在漏洞。
再看下sudo版本号sudo -V
[zhyw@localhost ~]$ sudo -V
Sudo 版本 1.8.23
Sudoers 策略插件版本 1.8.23
Sudoers 文件语法版本 46
Sudoers I/O plugin version 1.8.23
版本为:1.8.23,的确也是在官方公布的影响范围内的版本
升级修补漏洞,
wget https://www.sudo.ws/dist/sudo.tar.gz
解压
tar -xvzf sudo.tar.gz
进入该文件夹,编译安装
./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 -V
查看其版本
已经成功安装
验证漏洞是否修复
sudoedit -s /
提示为:usage: sudoedit [-AknS] [-C num] [-D directory] [-g group] [-h host] [-p prompt] [-R directory] [-T timeout] [-u user] file ...
表示该漏洞已经被修复。
Tip:如果相应的软件源已经更新了sudo,也可以直接通过yum或者apt-get来直接升级yum -y upgrade sudo