只要满足这个条件,低权限 Linux 用户就能执行任意命令!
编译:360代码卫士团队
研究人员发现了一个新漏洞,多数 Linux 系统上 UID 值大于 2147483647 的低权限用户账户能够越权执行任意 systemctl 命令。
该漏洞实际上存在于 PolicyKit (也被称为 polkit)中。它是一款应用程序级别的 Unix 类操作系统工具包,用于定义策略、处理系统权限,并为非权限进程和权限进程如“sudo”(未向整个进程授予根权限)提供相互通信的方法。
该漏洞的编号是 CVE-2018-19788,影响 PolicyKit 版本0.115,而该版本一般预装在多数流行 Linux 发行版本中,包括 Red Hat、Debian、Ubuntu 和 CentOS。
该漏洞存在的原因是 PolicyKit 对任意 UID 值大于 INT_MAX 的低权限用户的权限请求。INT_MAX 是计算机程序中的一个常量,定义了整数变量能存储的最大值2147483647(十六进制:0x7FFFFFFF)。也就是说,如果在受影响 Linux 系统上创建一个用户账户且它的 UID 值大于 INT_MAX,那么 PolicyKit 组件将允许用户成功地执行任意 systemctl 命令。
安全研究员 Rich Mirch(推特名:0xm1rch)也发布了 PoC代码利用,成功地验证了要求用户 UID 为4000000000的漏洞情况。
Red Hat 已经建议系统管理员不允许任意值为负的 UID 或者大于2147483646 的 UID,以便在补丁发布前缓解该问题。
推荐阅读
原文链接
https://thehackernews.com/2018/12/linux-user-privilege-policykit.html
本文由360代码卫士编译,不代表360观点,转载请注明“转自360代码卫士 www.codesafe.cn”。