漏洞介绍
sudo 存在缓冲区溢出漏洞。攻击者在取得服 务器基础权限的情况下,可以利用 sudo 基于堆的缓冲区溢出漏 洞,获得 root 权限。在 sudo 解析命令行参数的方式中发现了基 于堆的缓冲区溢出。任何本地用户(普通用户和系统用户,sudo er 和非 sudoers)都可以利用此漏洞,而无需进行身份验证,攻击者不需要知道用户的密码。
漏洞编号:CVE-2021-3156
修复问题:解决Sudo权限绕过漏洞 修复堆缓冲区溢出漏洞(CVE-2021- 3156)
漏洞影响
- 1.8.2 - 1.8.31p2
- 1.9.0 - 1.9.5p1
环境
离线升级
项目 | 版本 | 说明 |
---|---|---|
CentOS | 7.9.2009 | 操作系统 |
sudo | 1.8.23 | 原版本 |
sudo | 1.9.5p2 | 升级后版本 |
操作
前置准备
1、查看版本
sudo -V
Sudo version 1.8.23
Sudoers policy plugin version 1.8.23
Sudoers file grammar version 46
Sudoers I/O plugin version 1.8.23
2、下载
下载需要下载编译需要的依赖和程序包
2.1、下载编译需要的依赖库gcc
在具备互联网接入或具备yum源的电脑上下载gcc
# 1 下载安装yumdownload工具
yum install yum-utils -y
# 2 创建存储gcc文件夹
mkdir -p /home/downloads/tools/gcc
# 3 切换到创建存储的gcc目录
cd /home/downloads/tools/gcc
# 4 下载gcc和所有依赖包
yumdownloader --resolve --destdir /home/downloads/tools/gcc gcc
2、下载sudo
官网版本信息 https://www.sudo.ws/dist/
wget https://www.sudo.ws/dist/sudo-1.9.5p2.tar.gz
安装
将上述步骤中下载的文件拷贝至离线服务器上
1、切换至gcc程序目录
cd /home/downloads/tools/gcc
2、安装gcc
rpm -ivh *.rpm
3、切换至sudo程序目录
cd /home/downloads/tools/sudo
3、解压sudo程序
tar zxf sudo-1.9.5p2.tar.gz
4、配置安装
./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: "
5、编译安装
make && make install && ln -sfv libsudo_util.so.0.0.0 /usr/lib/sudo/libsudo_util.so.0
6、验证
sudo -V
Sudo version 1.9.5p2