新的Linux sudo漏洞使本地用户获得root权限
喜欢就关注我们吧!
近日被技术专家所发现的新 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 发布的技术细节:https://www.qualys.com/2021/01/26/cve-2021-3156/baron-samedit-heap-based-overflow-sudo.txt
2021-01-27
2021-01-27
2021-01-27