KnowSafe 安全预警:KnowSafe 安全团队监测到编号 AVD-2021-3156 的安全漏洞(危害等级:高危)已公开披露,相关用户应尽快排查并完成修复。
漏洞介绍
Sudo是一个功能强大的实用程序,大多数基于Unix和Linux的操作系统都包含Sudo。它允许用户使用其他用户的安全特权运行程序。2021年1月27日,KnowSafe应急响应中心监控到国外安全研究人员披露了Sudo 堆缓冲区溢出致本地提权漏洞,漏洞编号为 CVE-2021-3156。任何本地用户(包括普通用户和系统用户,sudoer和非sudoers)若成功利用该漏洞,可在无需密码的情况下获得root权限。
影响范围
应用:sudo sudo(影响面 Up to (including) 1.8.31p2)
应用:sudo sudo(影响面 Up to (including) 1.9.5p1)
系统:alibaba_cloud_linux_2.1903 sudo(影响面 Up to (excluding) 1.8.23-10.1.al7.1)
系统:alibaba_cloud_linux_3 sudo(影响面 Up to (excluding) 1.8.29-7.1.al8)
系统:alma_linux_8 bsdtar(影响面 Up to (excluding) 3.3.3-3.el8_5)
系统:alpine_3.10 sudo(影响面 Up to (excluding) 1.9.5p2-r0)
系统:alpine_3.11 sudo(影响面 Up to (excluding) 1.8.31-r1)
系统:alpine_3.12 sudo(影响面 Up to (excluding) 1.9.5p2-r0)
……另有 35 项受影响环境,详见官方公告
解决方案
1. 下载升级sudo软件包,下载链接为: https://www.sudo.ws/dist/
2. 使用 systemtap 执行以下命令进行临时缓解:
首先,安装所需的 systemtap 软件包和依赖项:
systemtap yum-utils kernel-devel-"$(uname -r)"
然后,对于RHEL 7,使用命令安装 kernel debuginfo:debuginfo-install -y kernel-"$(uname -r)"。
对于RHEL 8,使用命令安装 sudo debuginfo:debuginfo-install sudo。
接着,创建以下 systemtap 脚本,并将文件命名为 sudoedit-block.stap:
probe process("/usr/bin/sudo").function("main") {
command = cmdline_args(0,0,"");
if (strpos(command, "edit") >= 0) {
raise(9);
}
}
最终,使用root权限以下命令安装脚本:
# nohup stap -g sudoedit-block.stap &
该脚本将使得易受攻击的sudoedit二进制文件停止工作。 sudo命令仍将照常工作。上述更改在重启后失效,必须在每次重启后重新应用。
一旦安装了补丁程序,就可以通过取消systemtap进程来删除systemtap脚本。 例如,通过使用:
# kill -s SIGTERM 7590 (其中7590是systemtap进程的PID)
参考信息
http://packetstormsecurity.com/files/161160/Sudo-Heap-Based-Buffer-Overflow.html
http://packetstormsecurity.com/files/161230/Sudo-Buffer-Overflow-Privilege-Escalation.html
http://packetstormsecurity.com/files/161270/Sudo-1.9.5p1-Buffer-Overflow-Privilege-Escalation.html
http://packetstormsecurity.com/files/161293/Sudo-1.8.31p2-1.9.5p1-Buffer-Overflow.html
http://packetstormsecurity.com/files/176932/glibc-syslog-Heap-Based-Buffer-Overflow.html
KnowSafe 将持续跟踪该漏洞的利用情况与修复进展,如需漏洞管理与应急响应支持,欢迎联系 KnowSafe 安全团队。