linux 漏洞 网站,linux sudo root 权限绕过漏洞(CVE-2019-14287)

16aa539dacdb4708119521f5d50a7242.png

漏洞描述

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 用户的登录和管理时间,同时提高安全性。

漏洞分析

默认情况下,在大多数Linux发行版中如图所示,/etc /sudoers文件中RunAs规范中的ALL关键字允许admin或sudo组中的所有用户以系统上的任何有效用户身份运行任何命令。

bf141001d2845b64f5c5d1d6fd56b6f3.png

但是,由于特权分离是Linux中的基本安全范例之一,因此管理员可以配置sudoers文件来定义哪些用户可以运行哪些命令。

因此,即使限制了用户以root用户身份运行特定命令或任何命令,该漏洞也可能允许用户绕过此安全策略并完全控制系统。

该漏洞由Apple Information Security的Joe Vennix发现,漏洞编号为CVE-2019-14287,该漏洞引起大量关注,因为sudo程序是为了让用户使用自己的登录密码来以其他用户身份执行命令,无需输入密码。

更有趣的是,攻击者可以利用此漏洞,只需指定用户ID“ -1”或“ 4294967295”即可以root身份运行命令。

这是因为将用户ID转换为用户名的函数将-1或其无符号等效4294967295误认为是0,该值始终是root用户的用户ID。

3d4ffcfa2f969e44c2b4b915649c285f.png

利用该漏洞要求用户具有 sudo 权限,从而以任意用户 ID 运行命令。一般而言,用户的 sudoers 条目在 Runas 规范中具有特殊值 ALL。

Sudo 支持在 sudoers 策略允许的情况下,以用户指定的名称或用户 ID 运行命令。例如,如下 sudoers 条目允许 id 命令以任意用户身份运行,因为它包含 Runas 规范中的关键字ALL。

myhost alice = (ALL) /usr/bin/id

用户不仅能够以其它合法用户身份运行该 id 命令,还能使用 #uid 语法以任意用户 ID 运行该命令,例如:

sudo -u#1234 id -u

将返回1234,然而,sudo 在运行命令前用户修改用户 ID 的setresuid(2) 和 setreuid(2)系统调用将特殊对待用户 ID为-1(或其未签名的等同值 4294967295)而且并不会修改该值的用户 ID。因此,

sudo -u#-1 id -u

sudo -u#4294967295 id -u

实际上会返回 0。这是因为 sudo命令本身就已经以用户 ID 为0 运行,因此当 sudo 试图将用户 ID 修改成 -1时,不会发生任何变化。这就导致 sudo 日志条目将该命令报告为以用户 ID 为 4294967295而非 root (或者用户ID为 0)运行命令。此外,由于通过–u 选项指定的用户 ID 并不存在于密码数据库中,因此不会运行任何 PAM 会话模块。

如果sudoers 条目被写入允许用户以除 root 身份以外的用户身份运行命令,则可利用该 bug 绕过该限制。例如,给定如下 sudoers 条目:

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

用户 bob 被允许以除了 root以外的其它用户身份运行 vi。然而,由于存在该漏洞,bob 实际上能够通过运行 sudo –u#-1 ui 的方式以 root 身份运行 vi,从而违反了安全策略。

只有Runas 规范中存在关键字 ALL 的sudoers 条目受影响。例如,如下sudoers 条目并不受影响:

myhost alice = /usr/bin/id

在这个例子中,alice仅被允许以 root身份运行 id 命令。

复现截图:

2f19f8d8f10f818912eb105108f81f79.png

漏洞危害

高危

影响版本

1.8.28之前的Sudo版本。

安全建议

Sudo 1.8.28 版本已修复该漏洞,建议 Linux用户将 sudo包手动更新至最新版本。

参考信息

https://seclists.org/oss-sec/2019/q4/18

https://thehackernews.com/2019/10/linux-sudo-run-as-root-flaw.html

https://www.sudo.ws/alerts/minus_1_uid.htm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值