CVE-2021-4034 Polkit Pkexec本地权限提升漏洞 附POC、EXP

作者:Sec-Labs | 发布时间:

关于 Linux Polkit 本地权限提升漏洞的安全公告

近日,监测发现Qualys研究团队披露在 polkit 的 pkexec 程序中发现本地权限提升漏洞。2022年1月26日,Linux发布pkexec风险通告,漏洞编号为CVE-2021-4034,漏洞等级:高危,漏洞评分:7.8。目前,此漏洞细节以及PoC/EXP都已经公开,经验证,此漏洞利用难度低且可以稳定利用,建议尽快自查修复。

一、漏洞描述

pkexec 应用程序是一个 setuid 工具,旨在允许非特权用户根据预定义的策略以特权用户身份运行命令。由于当前版本的 pkexec 无法正确处理调用参数计数,并最终会尝试将环境变量作为命令执行。攻击者可以通过控制环境变量,从而诱导 pkexec 执行任意代码。利用成功后,可导致非特权用户获得管理员权限。

公开的PoC利用此漏洞向系统注入环境变量GCONV_PATH,将该环境变量指向攻击者存放gconv-modules文件的目录,在gconv-modules文件中指定攻击者的恶意.so文件,pkexec会执行.so文件里面的gonv_init()函数,在gonv_init()函数内将自身进程的各个权限标志位设为0从而达到提权。

二、影响范围

用户认证:低权限

触发方式:本地

配置方式:默认

影响版本:

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

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

部分受影响的国产化操作系统列表:

银河麒麟高级服务器操作系统 V10

银河麒麟高级服务器操作系统 V10 SP1

银河麒麟高级服务器操作系统 V10 SP2

统信UOS服务器操作系统V20

银河麒麟桌面版操作系统 V10

银河麒麟桌面版操作系统 V10 SP1

统信UOS桌面版操作系统V20

中标麒麟桌面版操作系统V7.0

安全版本:

CentOS/RedHat系列:

CentOS/RedHat 6:polkit-0.96-11.el6_10.2

CentOS/RedHat 7:polkit-0.112-26.el7_9.1

CentOS/RedHat 8.0:polkit-0.115-13.el8_5.1

CentOS/RedHat 8.2:polkit-0.115-11.el8_2.2

CentOS/RedHat 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

Fedora系列:

Fedora 34:polkit-0.117-3.fc34.2

Fedora 35:polkit-0.120-1.fc35.1

综合评估漏洞影响范围较大,对此,要求及时将pkexec升级到最新版本。

三、安全建议

1.若使用的操作系统目前无法安装补丁,可以考虑在不影响业务的情况下移除 pkexec 的 SUID 位以限制pkexec权限作为临时缓解措施。

执行如下命令:

chmod 755 /usr/bin/pkexec

2.CentOS用户可执行如下命令升级到安全版本:

yum clean all && yum makecache

yum update polkit -y

验证修复可以通过执行如下命令查看Polkit是否为安全版本:

rpm -qa polkit

3.Ubuntu用户可执行如下命令升级至安全版本:

sudo apt-get update

sudo apt-get install policykit-1

验证修复可以执行如下命令查看Polkit是否为安全版本:

dpkg -l policykit-1

4.Debian用户可执行如下命令升级至安全版本:

apt upgrade policykit-1

目前各Linux发行版官方均已给出安全补丁,建议用户尽快升级至安全版本,或参照官方说明措施进行缓解,CentOS、Ubuntu及Debian用户可参考以下链接:

https://access.redhat.com/security/cve/CVE-2021-4034

https://ubuntu.com/security/CVE-2021-4034

https://security-tracker.debian.org/tracker/CVE-2021-4034

四、复现过程

如下图所示 

微信截图_20220128210359.png

微信截图_20220128210416.png

普通用户使用POC程序可以直接提权到root,可见漏洞风险较高

 

相关POC、EXP

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

 

 

标签:漏洞分享