当前位置:首页 > 安全预警 > 正文

Sudo堆缓冲区溢出漏洞(CVE-2021-3156)预警

发布时间:2021-01-28 14:37:02,来源:北京天融信网络安全技术有限公司、深信服科技股份有限公司

       一、 基本情况

1月26日,Sudo发布了Sudo堆缓冲区溢出漏洞的风险公告,漏洞CVE编号:CVE-2021-3156。该漏洞的发现者将其名为“Baron Samedit”。未经身份验证的本地攻击者可利用该漏洞获得root权限。目前漏洞细节已公开,建议受影响用户及时升级至最新版本,并做好资产自查以及预防工作,以免遭受黑客攻击。

二、 漏洞等级

高危

三、 漏洞描述

Sudo是Linux及其他类unix系统下的常用指令,用于允许普通用户执行部分root命令的工具。

该漏洞是由于Sudo命令行解析代码中存在逻辑错误,Sudo错误地转义了参数中反斜杠,从而导致缓冲区溢出。只要存在Sudoers文件(通常是 /etc/sudoers),本地普通用户即可利用Sudo获得系统root权限。

四、 影响范围

Sudo 1.8.2 - 1.8.31p2

Sudo 1.9.0 - 1.9.5p1

五、 安全建议

(一) 官方建议

建议受影响用户及时安装Sudo 1.9.5p2版本修复该漏洞。

下载地址:https://www.sudo.ws/stable.html#1.9.5p2

(二) 临时修复建议

若用户暂时无法进行升级操作,可安装systemtap缓解漏洞影响。

1.安装所需的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。

2.创建以下systemtap脚本(将文件命名为sudoedit-block.stap)

probe process("/usr/bin/sudo").function("main")  {

        command = cmdline_args(0,0,"");

 

        if (strpos(command, "edit") >= 0) {

                raise(9);

        }

}

3.使用以下命令安装脚本:(使用root权限)

# nohup stap -g sudoedit-block.stap &

该脚本将使得易受攻击的sudoedit二进制文件停止工作。 sudo命令仍将照常工作。上述更改在重启后失效,必须在每次重启后重新应用。

4.一旦安装了补丁程序,就可以通过取消systemtap进程来删除systemtap脚本。

例如,通过使用:# kill -s SIGTERM 7590 (其中7590是systemtap进程的PID)

六、 参考链接

https://www.sudo.ws/alerts/unescape_overflow.html

https://access.redhat.com/security/vulnerabilities/RHSB-2021-002