polkit提权漏洞(CVE-2021-4034 )

一. 漏洞概述

权限提升漏洞(CVE-2021-4034)是由于pkexec无法正确处理调用参数,从而将环境变量作为命令执行,具有任意用户权限的攻击者都可以在默认配置下通过修改环境变量来利用此漏洞,从而获得受影响主机的root权限。

Polkit(PolicyKit)是类Unix系统中一个应用程序级别的工具集,通过定义和审核权限规则,实现不同优先级进程间的通讯。pkexec是Polkit开源应用框架的一部分,可以使授权非特权用户根据定义的策略以特权用户的身份执行命令。

二. 影响版本

受影响版本:

2009年5月至今发布的所有 Polkit 版本

注:Polkit预装在CentOS、Ubuntu、Debian、Redhat、Fedora、Gentoo、Mageia等多个Linux发行版上,所有存在Polkit的Linux系统均受影响。

不受影响版本:

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 14.04 ESM:policykit-1-0.105-4ubuntu3.14.04.6+esm1

Ubuntu 16.04 ESM:policykit-1-0.105-14.1ubuntu0.5+esm1

Ubuntu 18.04 LTS:policykit-1-0.105-20ubuntu0.18.04.6

Ubuntu 20.04 LTS:policykit-1-0.105-26ubuntu1.2

Ubuntu 21.10:policykit-1-0.105-31ubuntu0.1

Debain:

Debain stretch:policykit-1 0.105-18+deb9u2

Debain buster:policykit-1 0.105-25+deb10u1

Debain bullseye:policykit-1 0.105-31+deb11u1

Debain bookworm,bullseye:policykit-1 0.105-31.1

三. 漏洞复现

1. 版本检测

CentOS:

rpm -qa polkit

Ubuntu:

dpkg -l policykit-1

2. exp

https://github.com/berdav/CVE-2021-4034

3. 复现版本

4. 漏洞利用

编译:make

运行:./cve-2021-4034

四. 修复建议

CentOS、Ubuntu、Debian等使用包管理器更新Polkit的Linux发行版,可直接运行下列命令进行更新修复:

CentOS:

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

Ubuntu:

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

Debian:

apt upgrade policykit-1

临时防护措施

chmod 0755 /usr/bin/pkexec

五.  演示