2021年1月27日,本站安全专题监控到国外安全研究人员披露了Sudo 堆缓冲区溢出致本地提权漏洞,漏洞编号为CVE-2021-3156。
漏洞描述
Sudo是一个功能强大的实用程序,大多数基于Unix和Linux的操作系统都包含Sudo。它允许用户使用其他用户的安全特权运行程序。2021年1月27日,本站安全专题监控到国外安全研究人员披露了Sudo 堆缓冲区溢出致本地提权漏洞,漏洞编号为 CVE-2021-3156。任何本地用户(包括普通用户和系统用户,sudoer和非sudoers)若成功利用该漏洞,可在无需密码的情况下获得root权限。
漏洞评分
CVE-2021-3156 中危
影响版本
Sudo 1.9.0 到 1.9.5p1 所有稳定版(未安装patch)
Sudo 1.8.2 到 1.8.31p2 所有旧版本(未安装patch)
安全版本
Sudo 1.9.5p2 或安装了patch的低版本
安全建议
1. 下载升级sudo软件包,下载链接为: https://www.sudo.ws/dist/
2. 使用 systemtap 执行以下命令进行临时缓解:
首先,安装所需的 systemtap 软件包和依赖项:
1 systemtap yum-utils kernel-devel-"$(uname -r)"
然后,对于
1 | RHEL 7 |
,使用命令安装 kernel debuginfo:
1 | debuginfo-install -y kernel-"$(uname -r)" |
。
对于
1 | RHEL 8 |
,使用命令安装 sudo debuginfo:
1 | debuginfo-install sudo |
。
接着,创建以下 systemtap 脚本,并将文件命名为 sudoedit-block.stap:
1
2
3
4
5
6 probe process("/usr/bin/sudo").function("main") {
command = cmdline_args(0,0,"");
if (strpos(command, "edit") >= 0) {
raise(9);
}
}
最终,使用root权限以下命令安装脚本:
1 # nohup stap -g sudoedit-block.stap &
该脚本将使得易受攻击的
1 | sudoedit |
二进制文件停止工作。 sudo命令仍将照常工作。上述更改在重启后失效,必须在每次重启后重新应用。
一旦安装了补丁程序,就可以通过取消
1 | systemtap |
进程来删除
1 | systemtap |
脚本。 例如,通过使用:
1 # kill -s SIGTERM 7590 (其中7590是systemtap进程的PID)
3、安全云安全中心Linux软件漏洞模块已支持对该漏洞补丁一键检测和修复,详情登陆云中心
系统 |
漏洞 |
sudo修复版本 |
CentOS 6 / Redhat 6 |
发行版官方已停止维护,无法修复此次漏洞,建议更新系统或使用sudo源码编译安装更新 |
1.9.5p2 |
CentOS 7 / Redhat 7 |
RHSA-2021:0221: sudo 安全更新 |
1.8.23-10.el7_9.1 |
Ubuntu 14 |
发行版官方已停止维护,无法修复此次漏洞,建议更新系统或使用sudo源码编译安装更新 |
1.9.5p2 |
Ubuntu 16 |
USN-4705-1: sudo 漏洞 |
1.8.16-0ubuntu1.10 |
Ubuntu 18 |
USN-4705-1: sudo 漏洞 |
1.8.21p2-3ubuntu1.4 |
Alibaba Cloud Linux 2.1903 |
ALINUX2-SA-2021:0003: sudo 安全更新 |
1.8.23-10.1.al7.1 |
相关链接
1. https://www.qualys.com/2021/01/26/cve-2021-3156/baron-samedit-heap-based-overflow-sudo.txt
2. https://access.redhat.com/security/cve/CVE-2021-3156
我们会关注后续进展,请随时关注官方公告。
内容来自网络,如有侵犯到您的权益,请联系站长QQ7529997,我们将及时处理。
本站安全专题
2021.01.27