本地攻击者可利用一个Sudo漏洞在类Unix操作系统上获得root权限,而无需身份验证。
Sudo是一个Unix程序,它使系统管理员能够向sudoers文件中列出的普通用户提供有限的root权限,同时保留他们的活动日志。
它遵循最小权限原则,即程序只给用户足够的权限来完成他们的工作,而不损害系统的整体安全性。
在类Unix操作系统上执行命令时,没有权限的用户可以使用sudo(superuser do)命令以root身份执行命令,如果他们有权限,或者知道root用户的密码。
Sudo还可以被配置为允许普通用户像任何其他用户一样运行命令,方法是在sudoers配置文件中包含特殊指令。
本地攻击者可获取Root特权
该Sudo提权漏洞编号为CVE-2021-3156(又称为Baron Samedit),是由Qualys公司的安全研究人员在1月13日发现的,研究人员在确保有可用的补丁之后才公开他们的发现成果。
Qualys的研究人员称,该漏洞是个基于堆的缓冲区溢出漏洞,可被任何本地用户(普通用户和系统用户,无论是否列在sudoers文件中)利用,攻击者不需要知道用户的密码就可以成功利用该漏洞。
本地攻击者可利用该漏洞获取root权限,当Sudo错误地取消转义参数中的反斜杠会触发该漏洞。
根据1.9.5p2版本的更新日志,通常情况下,在通过shell(sudo -s或sudo -i)运行命令时,sudo会转义特殊字符。然而,还可以使用-s或-i flag运行sudoedit,在这种情况下,实际上没有进行任何转义,从而导致缓冲区溢出。
Qualys创建了三个CVE-2021-3156的exp,以展示潜在攻击者如何成功地利用该漏洞。
利用这些exp,研究人员能够在多个Linux发行版上获得完整的root权限,包括Debian 10(Sudo 1.8.27)、Ubuntu20.04(Sudo 1.8.31)和Fedora 33(Sudo 1.9.2)。
Qualys称,使用CVE-2021-3156的exp,Sudo支持的其他操作系统和发行版可能也可被利用。
Baron Samedit漏洞已得到修复
2011年7月,大约9年前,Sudo程序在commit 8255ed69中引入了该漏洞,该漏洞影响从1.9.0到1.9.5p1的所有稳定版本,以及从1.8.2到1.8.31p2的所有遗留版本的默认配置。
Sudo贡献者在Sudo1.9.5p2版本中修复了该漏洞,该版本已在1月26日发布,Qualys公司同日公开了他们的发现。
要测试系统是否脆弱,必须以非root用户身份登录,并运行“sudoedit -s /”命令。脆弱的系统将抛出以“sudoedit:”开头的错误,而已修复的系统将显示以“usage:”开头的错误。
使用Sudo将root权限委托给用户的系统管理员应立即升级到sudo1.9.5p2或更高版本。
作者:Sergiu Gatlan
来源:Bleeping Computer