壹 漏洞概念
2022年1月26日,Qualys
研究团队公开披露了在Polkit
的pkexec
中发现的一个权限提升漏洞(CVE-2021-4034
),也被称为PwnKit
。该漏洞是由于pkexec
无法正确处理调用参数,从而将环境变量作为命令执行,具有任意用户权限的攻击者都可以在默认配置下通过修改环境变量来利用此漏洞,从而获得受影响主机的root
权限。
贰 漏洞原理
Polkit
(PolicyKit
)是类Unix
系统中一个应用程序级别的工具集,通过定义和审核权限规则,实现不同优先级进程间的通讯。pkexec
是Polkit
开源应用框架的一部分,可以使授权非特权用户根据定义的策略以特权用户的身份执行命令。
叁 适用版本
3.1 受影响版本
- 2009年5月至今发布的所有 Polkit 版本
- 注:Polkit预装在CentOS、Ubuntu、Debian、Redhat、Fedora、Gentoo、Mageia等多个Linux发行版上,所有存在Polkit的Linux系统均受影响。
3.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 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
肆 复现环境说明
复现环境:kali-linux-2021
伍 复现
新建用户,运行py的exp,即可提权:
陆 利用Poc|Exp以及工具
6.1 检测
Linux系统用户可以通过查看Polkit版本来判断当前系统是否在受影响范围内,主流Linux发行版命令如下:
# CentOS:
rpm -qa polkit
# Ubuntu:
dpkg -l policykit-1
6.2 利用工具
EXP工具:传送门
cve-2021-4034.tar
CVE-2021-4034-py版本.zip
CVE-2021-4034-c版本.zip
建议使用:cve-2021-4034-go版本.zip
柒 危害
攻击者利用此漏洞,可实现系统权限提升。
捌 修复建议
8.1 官方修复
如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
7.2 临时防护措施
若受影响用户使用的操作系统还未发布修复程序,或暂时无法安装补丁更新,在不影响业务的情况下可使用以下措施进行临时防护。
执行下列系统命令移除 pkexec 的 suid位:
# root权限下也要加下面的sudo
sudo chmod 0755 /usr/bin/pkexec