Linux sudo权限提升漏洞(CVE-2021-3156)复现

漏洞详情

2021年01月26日,sudo被披露存在一个基于堆的缓冲区溢出漏洞(CVE-2021-3156,该漏洞被命名为“Baron Samedit”),可导致本地权限提升。当sudo通过-s或-i命令行选项在shell模式下运行命令时,它将在命令参数中使用反斜杠转义特殊字符。但使用-s或 -i标志运行sudoedit时,实际上并未进行转义,从而可能导致缓冲区溢出。只要存在sudoers文件(通常是 /etc/sudoers),攻击者就可以使用本地普通用户利用sudo获得系统root权限。请受影响的用户尽快采取措施进行防护。

影响范围

Sudo 1.8.2 - 1.8.31p2

Sudo 1.9.0 - 1.9.5p1

测试系统是否易受此漏洞影响:

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

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

  3. 如果出现以“ sudoedit:”开头的错误响应,则系统受到此漏洞影响;如果出现以“ usage:”开头的错误响应,则表示该漏洞已被补丁修复。

漏洞复现

环境:ubuntu20.04虚拟机,sudo 1.8.31

实现:

image-20210824150108325

版本符合要求,通过运行命令“sudoedit -s /”检测是否真正存在漏洞

image-20210824150201670

经检测漏洞存在

注:版本符合要求,漏洞不一定存在,如:

image-20210824150748392

Poc地址:

https://haxx.in/CVE-2021-3156_nss_poc_ubuntu.tar.gz

执行

进入目录并执行

cd CVE-2021-3156

make

./sudo-hax-me-a-sandwich

make并运行文件

image-20210824161257701

查看到可用选项,后提升权限./sudo-hax-me-a-sandwich 1 //结尾的1代表第几个选项