在sudo解析命令行参数的方式中发现了基于堆的缓冲区溢出。任何本地用户(普通用户和系统用户,sudoer和非sudoers)都可以利用此漏洞,而无需进行身份验证,攻击者不需要知道用户的密码。成功利用此漏洞可以获得root权限。
影响版本
Sudo 1.8.2 - 1.8.31p2
Sudo 1.9.0 - 1.9.5p1
不受影响的版本
Sudo =>1.9.5p2
用户可以使用如下方法进行自查: 以非root用户登录系统,并使用命令
sudoedit -s /
如果响应一个以sudoedit:开头的报错,那么表明存在漏洞。
• 如果响应一个以usage:开头的报错,那么表明补丁已经生效。
漏洞复现
Poc地址:
https://haxx.in/CVE-2021-3156_nss_poc_ubuntu.tar.gz
以普通用户解压poc并编译执行
cd CVE-2021-3156
make
./sudo-hax-me-a-sandwich root
目前exp在ubuntu 20.04环境下稳定运行,以下服务器版本测试均成功:
修复建议
目前官方已在sudo新版本1.9.5p2中修复了该漏洞,请受影响的用户尽快升级版本进行防护,官方下载链接:https://www.sudo.ws/download.html