新的 Linux sudo 漏洞使本地用户获得 root 权限

来源: OSCHINA
编辑: Alias_Travis
2021-01-28

近日被技术专家所发现的新 sudo 漏洞允许任何本地用户在不需要任何身份验证的情况下就可以在类 Unix 操作系统上获得 root 权限。

Sudo 实际上就是一个 Unix 程序,它使系统管理员可以为 sudoers 文件中列出的普通用户提供有限的 root 权限,与此同时保留其活动日志。Sudo 按照“最小权限原则”工作,基于该原则,Sudo 程序仅授予用户足够的权限来完成工作,而不会损害系统的整体安全性。

当在类似 Unix 的系统上执行命令时,普通用户可以使用 sudo(superuser do)命令来以超级用户身份执行命令(如果他们具有权限或知道超级用户的密码)—— root 是系统的超级用户,即一个特殊的系统管理帐户。

任何本地用户的 root 权限

Qualys 的安全研究人员发现并跟踪了被命名为 CVE-2021-3156 的 Sudo 权限升级漏洞。根据 Qualys 研究人员的发现,此漏洞产生的原因是基于任何本地用户(普通用户和系统用户,无论是否在 sudoers 文件中列出)都可以利用基于堆的缓冲区溢出而实现的,攻击者无需知道用户密码即可成功利用此漏洞。

Sudo 错误地在参数中转义了反斜杠字符,从而触发了缓冲溢出,最终导致任何本地用户都可以获得 root 权限。通常,在 shell 中(sudo -s 或 sudo -i)运行命令时,sudo 都会转义特殊的字符。但是,在使用 sudoedit -s 或 sudoedit -i 时实际上又没有进行转义,这使得缓冲区溢出成为了可能。

利用这些漏洞,Qualys 的研究人员能够在多个 Linux 发行版上获得完整的 root 权限,研究人员分别在 Debian 10(Sudo 1.8.27)、Ubuntu 20.04(Sudo 1.8.31)和 Fedora 33(Sudo 1.9.2)上重现了 CVE-2021-3156 漏洞。根据 Qualys 的说法,CVE-2021-3156 漏洞在其他 Sudo 所支持的操作系统和发行版中同样存在。

漏洞在对外公开前就已修复

该漏洞最早是在 2011 年 7 月由 Sudo 程序引入进系统之中,距今已接近 10 年时间。它会影响从 1.9.0 到 1.9.5p1 的所有稳定版本,以及从 1.8.2 到 1.8.31p2 的所有旧版本的默认配置。

Qualys 于 1 月 13 日就在 Sudo 程序的内部社群披露了此漏洞,而今天 Sudo 开发者正式推出 sudo 1.9.5p2 版本,并在该版本中修复了漏洞。为了防止该漏洞被滥用,因此直到现在 Qualys 才正式对外披露了他们的发现。

要测试你的系统是否受到该漏洞影响,首先必须以非 root 用户的身份登录系统并运行 “*sudoedit -s /“*命令。易受攻击的系统将引发以 “sudoedit:” 开头的错误,而已修补系统将显示以 “usage:”开头的错误。

使用 Sudo 将 root 权限委派给其他用户的系统管理员应尽快升级到 sudo 1.9.5p2 或更高版本。

想要了解更多详情, 可以查看 Qualys 发布的技术细节

展开阅读全文
7 收藏
分享
加载中
精彩评论
这个我就要吐槽了. 如果是我实现sudo命令,我肯定会先判断,当前用户,是否在sudo这个用户组里,是的话再去判断用户输入的密码对不对,这么做安全风险会降低很多. 因为只有sudo组的用户可以绕过密码,就要求攻击者首先需要获得一个sudo组用户的shell,显然,没那么容易获得.
2021-01-28 15:13
3
举报
sudo堆溢出漏洞(CVE-2021-3156)centos7 系统修复方法, https://aqzt.com/bubble
2021-01-28 13:32
1
举报
震惊!
2021-01-28 13:31
1
举报
最新评论 (9)
这个我就要吐槽了. 如果是我实现sudo命令,我肯定会先判断,当前用户,是否在sudo这个用户组里,是的话再去判断用户输入的密码对不对,这么做安全风险会降低很多. 因为只有sudo组的用户可以绕过密码,就要求攻击者首先需要获得一个sudo组用户的shell,显然,没那么容易获得.
2021-01-28 15:13
3
回复
举报
这个你误解了,他们确实做了判断。 “Sudo 错误地在参数中转义了反斜杠字符,从而触发了缓冲溢出,最终导致任何本地用户都可以获得 root 权限。”
2021-01-29 10:34
0
回复
举报
sudo堆溢出漏洞(CVE-2021-3156)centos7 系统修复方法, https://aqzt.com/bubble
2021-01-28 13:32
1
回复
举报
震惊!
2021-01-28 13:31
1
回复
举报
安全
2021-01-28 10:08
0
回复
举报
sudoedit -s / 是吧
2021-01-28 09:48
0
回复
举报
你这个命令写得太让人疑惑了 用md引用突出 不好吗
2021-01-28 09:29
0
回复
举报
“*sudoedit -s /“* ??????????????????
2021-01-28 09:23
0
回复
举报
centos,1.8.6p7貌似没得问题,执行了直接要密码
2021-01-28 09:15
0
回复
举报
更多评论
9 评论
7 收藏
分享
返回顶部
顶部