Who is the superuser? CVE-2019-14287 sudo漏洞分析

Who is the superuser? CVE-2019-14287 sudo漏洞分析

1. 背景

苹果信息安全团队的 Joe Vennix 发现了编号为 CVE-2019-14287 的漏洞(sudo漏洞),该漏洞是sudo工具的漏洞,发布时间是2019年10月14号。攻击者只需要指定用户 ID 为 -14294967295 就可以以 root 用户权限执行命令。原因是将用户 ID 转换为用户名的函数不正确的将 -14294967295 视为0 (由于sudo执行前,需要调用两个系统调用:setresuid(2) 和setreuid(2) ,这两个系统调用的功能是用来改变当前用户的ID,而用户ID为-1或4294967295的时候,这两个函数由于内部原因,没有成功修改当前用户的ID而导致返回0),而 0 通常是 root 用户的用户 ID,漏洞影响sudo 1.8.28 之前的所有版本。


乍一看,这个漏洞非常可怕,sudo是UNIX 和 Linux 操作系统广泛使用的工具,sudo 代表 superuser do,允许用户在不切换环境的情况下以不同权限运行程序或命令,sudo漏洞意味着普通用户能够随意提升权限至系统管理员,然而,它的危害真的像新闻中所述吗?

2. 漏洞利用条件分析

该漏洞可被利用的一个重要前提条件,是因为系统管理员配置了/etc/sudoers文件,注意到/etc/sudoers文件的默认权限是“-r--r-----”,如下图所示:

只有root用户或者是属于root组的用户才能读该文件,当然,root用户也可以修改该文件,但是其它用户无法修改,该文件的默认内容如下图所示:

/etc/sudoers文件能够指定一个用户是否可以以其他用户的身份执行特定的命令。在未修改/etc/sudoers文件之前,一个普通用户如果想要以其它用户的身份执行命令,是会被拒绝的。如下图中展示的实例所示,当前用户是loccs,想要以ml用户的身份执行cat命令,查看/etc/shadow文件,但是系统拒绝了该命令,因为该文件默认只有root用户才能查看,并且loccs用户也无法以ml用户的身份执行命令。


注:sudo命令默认是以root的身份去执行后续的命令,但是,也可以使用-u参数来指定以其它用户的身份执行命令,-u参数后面既可以跟一个用户名,也可以跟一个用户id。

如果我们现在对/etc/sudoers文件进行修改,在文件中添加一行:

loccs ALL=(ALL, !root) /bin/cat

如下图所示:


所添加的行表示:赋予loccs用户以任意身份(除root用户,图中的“!root”表示排除root用户)执行 /bin/cat 命令的权限,在这种情况下,loccs用户可以用命令

sudo -u#uid cat filename

来以其他用户(除了root用户以外)执行cat命令,然而,sudo漏洞表明,当我们执行如下命令

sudo -u#-1 cat filename

由于sudo程序的错误解析,会将UID为-1(或者是4294967295)默认解析为0(代表root用户),这时候 loccs用户即可作为su执行相关命令。如下图所示,loccs用户查看到了/etc/shadow文件的内容:

3. 漏洞影响

敲黑板,注意!!!CVE-2019-14287 漏洞能被利用的前提条件在于/etc/sudoers文件中存在一些非标准的配置(例如允许某普通用户执行某特定命令),这时候该普通用户能够以su的身份去执行该命令。然而,在大部分系统中,管理员通常不会去做/etc/sudoers文件的配置(/etc/sudoers文件中给用户配置为username ALL=(ALL, !root) /bin/xxx 这种形式比较少见),同时攻击者没有获得root权限之前,无法修改/etc/sudoers文件,因此,该漏洞利用条件非常有限,也被判断为低危类型。然而,我们提醒服务器的管理人员,还是需要及时检查服务器中是否存在这种形式的配置,以免带来不必要的损失。

4. 总结

如果服务器的配置文件/etc/sudoers中不存在特定形式的配置,则不会受到该漏洞的影响,但为了保险起见,还是建议服务器的管理人员及时更新sudo版本到sudo 1.8.28以上。

参考

anquanke.com/post/id/18

solidot.org/story?

thehackernews.com/2019/

sudo.ws/alerts/minus_1_

cve.mitre.org/cgi-bin/c

sudo.ws/

sudo.ws/download.html#

cert.360.cn/

编辑于 2019-10-18

文章被以下专栏收录