【漏洞复现】CVE-2019-14287-linux-sudo-root权限绕过

【漏洞复现】CVE-2019-14287-linux-sudo-root权限绕过

事件背景

2019年10月14日,Sudo官方释放了新版本1.8.28,其中包含sudo root权限绕过漏洞的补丁修复。
此漏洞编号是CVE-2019-14287,用户可以构造的payload,在特定条件下可以可以通过指定用户ID -1或4294967295以root用户身份运行命令。

漏洞信息

漏洞名称 sudo 权限绕过漏洞
CVE编号 CVE-2019-14287
CNVD编号 -
影响版本 sudo <1.8.28
威胁等级 高危
公开时间 2019年10月14日

影响范围

sudo < 1.8.28

漏洞分析

官网描述的漏洞细节(https://www.sudo.ws/alerts/minus_1_uid.html)

从中截取部分如下:
当 /etc/sudoers 文件存在如下形式的配置时,bob实际上可以通过运行sudo -u#-1 vi来越权以root身份运行vi程序

1
myhsot bob=(ALL, !root) /usr/bin/vi

先解释下这段配置
myhsot -– 在myhost主机上,一般配置为ALL即在所有主机
bob –- 表示将bob用户加入sudo组,如果给组赋权在前面加上%
(ALL, !root) –-以root身份以外的任何用户身份
/usr/bin/vi –- 允许执行的程序或命令,这里是只允许执行vi
(详细介绍请参考官网手册https://www.sudo.ws/sudo/man/1.8.2/sudoers.man.html)

一句总结起来的就是:在/etc/sudoers配置中只允许用户bob以root身份以外的任何用户身份在myhost主机上运行vi。但是由于sudo存在漏洞,bob实际上可以通过运行sudo -u#-1 vi来以root身份运行 vi程序。

漏洞复现

1.查看sudo版本

在Linux终端中使用sudo -V 命令查看版本

该版本号为1.8.19p1,在影响范围中

使用普通用户lab(uid=1000)直接查看/etc/shadow提示权限拒绝

2.修改/etc/sudoers 文件

修改/etc/sudoers 文件
加入以下内容:

ALL
1
2
3
4
5
6
7
8
9
10
**允许lab用户在所有主机上以root身份以外的任何用户身份执行bin/bash程序**

![]( 【漏洞复现】CVE-2019-14287-linux-sudo-root权限绕过/2019-10-15-17-31-19.png )

*这一步配置主要是测试使用,实际运维工作中很少见


##### 3.漏洞利用权限绕过
1.进入lab的终端执行
```sudo -u#-1 /bin/bash


对比发现uid=0(root),gid和group均未发生变化
查看/etc/shadows文件

到这里就进行了绕过

修复建议

升级sudo到1.8.28版本
官网:https://www.sudo.ws

参考

[1].https://www.sudo.ws/alerts/minus_1_uid.html
[2].https://www.sudo.ws/sudo/man/1.8.2/sudoers.man.html

免责声明:

本文中提到的测试利用代码、Poc和脚本工具仅供研究学习使用,请遵守《网络安全法》等相关法律法规。

扫码关注公众号(SecurityCN) wechat
欢迎您扫码关注SecurityCN(微信公众号:securitycn),本号会发布一些个人学习及研究文章,包括但不限于漏洞分析、漏洞挖掘、代码审计、IOT安全、比赛、培训认证等
坚持原创技术分享,您的支持将鼓励我继续创作!