2019年10月14日,Sudo官方发布了Sudo 1.8.28版本,其中包含sudo root权限绕过漏洞的补丁修复。
此漏洞编号是CVE-2019-14287,当sudo配置为允许用户以任意方式运行命令时用户通过Runas规范中的ALL关键字,可以通过指定用户ID -1或4294967295以root用户身份运行命令。
具有足够sudo权限的用户可以使用它来运行Runas规范明确禁止使用的root命令,以这种方式运行的命令的日志条目将列出目标用户为4294967295而不是root。
Sudo 的全称是“superuserdo”,它是Linux系统管理指令,允许用户在不需要切换环境的前提下以其它用户的权限运行应用程序或命令,通常是以 root 用户身份运行命令,以减少 root 用户的登录和管理时间,同时提高安全性。
-
Ubuntu server 16.04
-
在安装系统的时候默认要求添加的一个低权限账户(重要)
sudo 版本:1.8.16
按照网上的文章使用: sudo -u#-1 id -u
或者 sudo -u#4294967295 id -u
并不能复现成功
我想root的UID是0 那么我直接把命令中的#后面的数字换成0是不是就可以成功呢?
结果是OK的!如下图所示:
也欢迎大家在自己的机器上测试复现,分享啊!
然后分别在centos 6&7 测试均不能复现。可以通过id 来查看自己是否具有sudo执行权限:
Ubuntu server 16.04
Centos 6、7
这个漏洞需要知道当前低权限用户的密码才行,而且低权限用户可以使用sudo -V 这类命令来测试自己是否满足此权限。很多云服务器这些默认只有root用户,所以这个漏洞其实影响不算大,也不是很通用,没有网上吹嘘的那么夸张。