CVE-2019-14287 (Linux sudo命令)漏洞复现

漏洞简介


sudo命令:以系统管理者的身份执行指令配置文件:/etc/sudoers

漏洞形成的原因

配置文件中明确表明不允许以 root 用户进行访问,但通过该漏洞,恶意用户或程序仍可在目标 Linux 系统上,以 root 用户身份执行任意命令。

对应格式及注释如下:

漏洞影响版本:sudo 1.8.28之前的所有版本

漏洞修复:将sudo包更新至最新版本


漏洞复现


漏洞复现环境

centos release 6.10

sudo 1.8.6p3

添加用户:useradd test

修改配置文件:vim /etc/sudoers

切换到test用户,查看id

使用sudo命令尝试执行了以下命令:均不成功!

漏洞利用sudo -u#-1     或者   sudo -u#4294967295(-1 的补码,其内部是按无符号整数处理的)

通过以上方式绕过配置文件限制,以root身份成功执行命令!


漏洞原理分析


官方提交修复代码:https://www.sudo.ws/repos/sudo/rev/83db8dba09e7

进入lib/util/strtoid.c中发现,对id为-1做了限制,表示禁止改变

llval 变量为解析后的值,不允许 llval 为 -1 和 UINT_MAX(4294967295)

接下来打算深入分析一下的小伙伴可参考:https://paper.seebug.org/1057/

发布了103 篇原创文章 · 获赞 26 · 访问量 6157

猜你喜欢

转载自blog.csdn.net/qq_41210745/article/details/103382049