最近技术专家发现,一个新的sudo漏洞允许任何本地用户在类Unix操作系统上获得root权限而无需任何身份验证。Sudo实际上是一个Unix程序,它使系统管理员能够向sudoers文件中列出的普通用户提供有限的root权限,同时保留他们的活动日志。Sudo根据“最小权限原则”工作,sudo程序仅授予用户足够的权限来完成工作,而不会损害系统的整体安全性。在类Unix系统上执行命令时,普通用户可以使用sudo(superuserdo)命令以超级用户的身份执行命令(如果有权限或者知道超级用户的密码)——root是系统的超级用户,即一个特殊的系统管理帐户。任何本地用户的根权限Qualys的安全研究人员发现并跟踪了一个名为CVE-2021-3156的sudo权限升级漏洞。根据Qualys研究人员的调查结果,此漏洞的原因是基于任何本地用户(普通用户和系统用户,无论是否在sudoers文件中列出)都可以利用基于堆的缓冲区溢出,并且攻击者不需要知道成功利用此漏洞需要用户密码。Sudo错误地转义了参数中的反斜杠字符,触发了缓冲区溢出,最终允许任何本地用户获得root权限。通常,sudo在shell中运行命令(sudo-s或sudo-i)时会转义特殊字符。但是,当使用sudoedit-s或sudoedit-i时实际上并没有转义,这使得缓冲区溢出成为可能。利用这些漏洞,Qualys研究人员能够在多个Linux发行版上获得完全的root权限,包括Debian10(Sudo1.8.27)、Ubuntu20.04(Sudo1.8.31)和Fedora33(Sudo1.9.2)复制了CVE-2021-3156漏洞。根据Qualys的说法,CVE-2021-3156漏洞也存在于其他支持sudo的操作系统和发行版中。公开披露前修复的漏洞该漏洞是在近10年前的2011年7月由sudo程序首次引入系统的。它影响从1.9.0到1.9.5p1的所有稳定版本,以及从1.8.2到1.8.31p2的所有旧默认配置。Qualys于1月13日在Sudo程序内部社区披露了该漏洞,今日Sudo开发者正式推出sudo1.9.5p2版本,并在该版本修复了该漏洞。为了防止漏洞被滥用,Qualys直到现在都没有正式公开他们的发现。要测试您的系统是否受此漏洞影响,您必须先以非root用户登录系统并运行“*sudoedit-s/”*命令。易受攻击的系统将抛出以“sudoedit:”开头的错误,而已打补丁的系统将显示以“usage:”开头的错误。使用sudo将root权限委托给其他用户的系统管理员应尽快升级到sudo1.9.5p2或更高版本。有关详细信息,请查看Qualys发布的技术细节。本文转自OSCHINA文章标题:Linux新sudo漏洞允许本地用户获得root权限本文地址:https://www.oschina.net/news/128098/new-linux-sudo-flaw-lets-local-users-gain-root权限
