sudo外地提权误差(CVE-2021-3156)

宣布时间 2021-01-27

0x00 误差概述

CVE  ID

CVE-2021-3156

时   间

2021-01-27

类   型

权限提升

等   级

高危

远程使用

否

影响规模


 

0x01 误差详情

image.png

 

Sudo是一个功效强盛的工具,其允许通俗用户执行root权限下令,大大都基于Unix和Linux的操作系统都包括sudo。

2021年01月26日,sudo被披露保存一个基于堆的缓冲区溢出误差(CVE-2021-3156,该误差被命名为“Baron Samedit”),可导致外地权限提升。

当在类Unix的操作系统上执行下令时,非root用户可以使用sudo下令来以root用户身份执行下令。由于sudo过失地在参数中转义了反斜杠导致堆缓冲区溢出,从而允许任何外地用户(无论是否在sudoers文件中)获得root权限,无需举行身份验证,且攻击者不需要知道用户密码。

清静研究职员于1月26日果真披露了此误差,并体现该误差已经隐藏了近十年。

 

影响规模

Sudo 1.8.2 - 1.8.31p2

Sudo 1.9.0 - 1.9.5p1

 

测试系统是否易受此误差影响:

1.   以非root用户身份登录系统。

2.   运行下令“sudoedit -s /”

3.   若是泛起以“ sudoedit:”开头的过失响应,则系统受到此误差影响;若是泛起以“ usage:”开头的过失响应,则体现该误差已被补丁修复。

 

 

0x02 处置惩罚建议

建议实时升级sudo至最新版本。

下载链接:

https://www.sudo.ws/dist/

 

暂时步伐(RedHat)

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&

这将输出systemtap剧本的PID编号,该剧本将导致易受攻击的sudoedit二进制文件阻止事情,sudo下令仍将照常事情。

注重,上述更改会在重启后失效,必需在每次重启后重新应用。

 

4.一旦装置了补丁程序,就可以通过终止systemtap历程来删除systemtap剧本。例如,通过使用以下下令,其中7590是systemtap历程的PID。

#kill -s SIGTERM 7590

 

 

0x03 参考链接

https://blog.qualys.com/vulnerabilities-research/2021/01/26/cve-2021-3156-heap-based-buffer-overflow-in-sudo-baron-samedit

https://access.redhat.com/security/cve/CVE-2021-3156

https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-3156

https://www.bleepingcomputer.com/news/security/new-linux-sudo-flaw-lets-local-users-gain-root-privileges/

 

0x04 时间线

2021-01-26  Qualys披露误差

2021-01-27  RedHat宣布清静通告

2021-01-27  VSRC宣布清静通告

 

0x05 附录

 

CVSS评分标准官网:http://www.first.org/cvss/

image.png