Linux sudo命令中的重大安全漏洞
苹果安全研究员Joe Vennix在Linux中重要的sudo命令中发现了一个安全漏洞。
sudo命令是“超级用户”的缩写,在各种Linux发行版中广泛使用,以将管理员级别的权限与普通系统用户分开。
例如,在安装程序时,通常将使用sudo命令。在任何命令或程序之前使用sudo会使它以管理员或“ root”用户身份运行。
Vennix发现的错误使用户可以绕过对允许其以root用户身份运行的程序的限制。
尽管这是一个重大漏洞,但Bleeping Computer在其报告中指出,大多数Linux系统将不受该错误的影响。
sudo命令使用一个称为“ sudoers”的特殊配置文件,系统管理员可以在其中设置任何给定用户可以root用户身份运行的程序。
如果限制用户在某些程序上使用sudo,则可以使用Vennix发现的错误绕过该限制。
这是通过将意外的用户ID传递给sudo命令来完成的。
除了以“ root”身份运行命令以外,sudo还可以用于以系统上的其他任何用户身份运行命令,前提是您具有这样做的权限。
除了名称之外,系统上的每个用户都被赋予唯一的数字ID。例如,根用户的ID通常为0。如果我创建一个名为“ mybroadband”的新用户,通常的做法是让其ID为1000或更大。
简而言之,sudo -u#1000 whoami将使名为“ whoami”的程序以ID为1000的用户身份运行。
如果要以“ root”身份运行程序,则可以不使用user ID参数,而使用sudo whoami。但是,如果“ sudoers”文件阻止您以root用户身份运行程序,则会收到错误消息。
Vennix发现的错误使您可以通过将–1或4294967295的用户ID传递给sudo命令来绕过此类限制,如下所示:sudo -u#-1 whoami。
sudo的1.8.28版修复了该错误。