壹 漏洞概念
2021年1月26日,Linux安全工具sudo被发现严重的基于堆缓冲区溢出漏洞。利用这一漏洞,攻击者无需知道用户密码,一样可以获得root权限,并且是在默认配置下。此漏洞已分配为CVE-2021-3156,危险等级评分为7分。
贰 漏洞原理及利用条件
当sudo通过-s或-i命令行选项在shell模式下运行命令时,它将在命令参数中使用反斜杠转义特殊字符。但使用-s或-i标志运行sudoedit时,实际上并未进行转义,从而可能导致缓冲区溢出。因此只要存在sudoers文件(通常是/etc/sudoers),攻击者就可以使用本地普通用户利用sudo获得系统root权限。研究人员利用该漏洞在多个Linux发行版上成功获得了完整的root权限,包括Ubuntu 20.04(sudo 1.8.31)、Debian 10(sudo 1.8.27)和Fedora 33(sudo 1.9.2),并且sudo支持的其他操作系统和Linux发行版也很容易受到攻击。
叁 适用版本
# 查看版本
sudo --version

范围为在以下版本,可能存在漏洞:
sudo 1.8.2 - 1.8.31p2
sudo 1.9.0 - 1.9.5p1
或者执行:
sudoedit -s /
# 以sudoedit:开头报错则存在此漏洞则存在漏洞
root@kali:~# sudoedit -s /
sudoedit: /:不是常规文件 #sudoedit: /: not a regular file
# 以usage:开头的报错,那么表明补丁已经生效
usage: sudoedit [-AknS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p prompt] [-T timeout] [-u user] file
肆 复现环境说明
复现环境:kali-linux-2020.1-amd64
伍 复现
# 查看版本
sudo --version
# 增加执行权限
chmod +x sudo-hax-me-a-sandwich
# 需要根据不同的版本执行不同的exp
./sudo-hax-me-a-sandwich 1

陆 利用Poc|Exp以及工具
EXP地址:传送门
CVE-2021-3156-main.tar
无交互式shell的EXP:传送门
CVE-2021-3156-plus-main.zip
柒 危害
提权为root权限!
捌 修复建议
更新sudo至最新版本!