在 Linux 中利用新发现的 sudo 漏洞可使某些用户以 root 身份运行命令,尽管对此还有所限制。html
sudo 命令中最近发现了一个严重漏洞,若是被利用,普通用户能够 root 身份运行命令,即便在 /etc/sudoers
文件中明确禁止了该用户这样作。linux
将 sudo
更新到版本 1.8.28 应该能够解决该问题,所以建议 Linux 管理员尽快这样作。git
如何利用此漏洞取决于 /etc/sudoers
中授予的特定权限。例如,一条规则容许用户以除了 root 用户以外的任何用户身份来编辑文件,这实际上将容许该用户也以 root 用户身份来编辑文件。在这种状况下,该漏洞可能会致使很是严重的问题。github
用户要可以利用此漏洞,须要在 /etc/sudoers
中为用户分配特权,以使该用户能够以其余用户身份运行命令,而且该漏洞仅限于以这种方式分配的命令特权。数据库
此问题影响 1.8.28 以前的版本。要检查你的 sudo
版本,请使用如下命令:安全
$ sudo -V
Sudo version 1.8.27 <===
Sudoers policy plugin version 1.8.27
Sudoers file grammar version 46
Sudoers I/O plugin version 1.8.27
复制代码
该漏洞已在 CVE 数据库中分配了编号 CVE-2019-14287。它的风险是,任何被指定能以任意用户运行某个命令的用户,即便被明确禁止以 root 身份运行,它都能逃脱限制。bash
下面这些行让 jdoe
可以以除了 root 用户以外的其余身份使用 vi
编辑文件(!root
表示“非 root”),同时 nemo
有权运行以除了 root 身份之外的任何用户使用 id
命令:spa
# affected entries on host "dragonfly"
jdoe dragonfly = (ALL, !root) /usr/bin/vi
nemo dragonfly = (ALL, !root) /usr/bin/id
复制代码
可是,因为存在漏洞,这些用户中要么可以绕过限制并以 root 编辑文件,或者以 root 用户身份运行 id
命令。.net
攻击者能够经过指定用户 ID 为 -1
或 4294967295
来以 root 身份运行命令。code
sudo -u#-1 id -u
复制代码
或者
sudo -u#4294967295 id -u
复制代码
响应为 1
代表该命令以 root 身份运行(显示 root 的用户 ID)。
苹果信息安全团队的 Joe Vennix 找到并分析该问题。
via: www.networkworld.com/article/344…
做者:Sandra Henry-Stocker 选题:lujun9972 译者:geekpi 校对:wxy