近日,Qualys研究小组发现了sudo中一个隐藏了十年的堆溢出漏洞(CVE-2021-3156,命名:Baron Samedit),包括Linux在内的几乎所有Unix主流操作系统都存在该漏洞。通过利用此漏洞,任何没有特权的用户都可以使用默认的sudo配置在易受攻击的主机上获得root特权(无需密码)。
Sudo是一个功能强大的实用程序,大多数(如果不是全部)基于Unix和Linux的操作系统都包含Sudo。它允许用户使用其他用户的root权限运行程序。Qualys发现的这个sudo提权漏洞已经隐藏了将近十年,它于2011年7月在一次提交中被引入(提交8255ed69),在默认配置下会影响从1.8.2到1.8.31p2的所有旧版本,以及从1.9.0到1.9.5p1的所有稳定版本。
通过利用该漏洞,任何没有特权的(本地)用户都可以在易受攻击的主机上获得root特权。Qualys安全研究人员已经能够独立验证漏洞并开发多种利用形式,并在Ubuntu 20.04(Sudo 1.8.31)、Debian 10(Sudo 1.8.27)和Fedora 33(Sudo 1.9.2)上获得完整的root用户特权。其他操作系统和发行版也可能会被利用。
Qualys研究小组确认该漏洞后,进行了负责任的漏洞披露,并与sudo的作者和开源发行版进行了协调以宣布该漏洞。
披露时间表(UTC):
Qualys在官方博客(https://blog.qualys.com/vulnerabilities-research/2021/01/26/cve-2021-3156-heap-based-buffer-overflow-in-sudo-baron-samedit)提供了漏洞的更多细节和概念证明视频。
考虑到该漏洞的攻击面很广,Qualys建议所有用户立即为此漏洞应用补丁,以下版本的sudo容易受到攻击:
用户可以通过以下方法测试系统是否易受攻击。
以非root用户身份登录系统,运行命令“sudoedit-s/”。如果系统容易受到攻击,它将返回以“sudoedit”开头的错误提示。如果系统已打补丁,它将返回以“usage”开头的错误提示。
参考资料
https://www.sudo.ws/alerts/unescape_overflow.html
https://blog.qualys.com/vulnerabilities-research/2021/01/26/cve-2021-3156-heap-based-buffer-overflow-in-sudo-baron-samedit