漏洞概述
pkexec是一个 setuid 工具,旨在允许非特权用户根据预定义的策略以特权用户身份执行命令。Qualys 研究团队在 polkit (原名PolicyKit)的 pkexec 中发现了一个本地特权提升漏洞,该SUID-root程序默认安装在每个主要的Linux发行版上。该漏洞允许任何非特权用户通过在Linux默认配置中利用此漏洞来获得易受攻击主机的完全root权限。由于当前版本的 pkexec 无法正确处理调用参数计数,并会尝试将环境变量作为命令执行。攻击者可以通过控制环境变量,从而诱导 pkexec 执行任意代码。利用成功后,可导致非特权用户获得最高管理员权限。
此漏洞的触发途径是本地触发,在网络环境、物理环境安全的前提下,漏洞的触发较为困难,影响较为有限,此漏洞评分最终定为 7.8 分。该漏洞虽然只是在本地触发,但Polkit作为系统预装工具,影响众多 Linux 发行版,并且漏洞利用简单且稳定,可以很好的应用于“权限提升”这个攻击阶段中,因此其评级比较高。
参考链接:https://blog.qualys.com/vulnerabilities-threat-research/2022/01/25/pwnkit-local-privilege-escalation-vulnerability-discovered-in-polkits-pkexec-cve-2021-4034
影响范围
目前主流Linux版本均受影响
不受影响版本:
CentOS:polkit-0.115
Ubuntu:policykit-1- 0.105
漏洞缓解措施
CentOS用户可采用如下命令升级到安全版本或更高版本
yum cleanall && yum makecache
yum update polkit -y
验证修复,通过以下命令可查看Polkit是否为安全版本:
rpm -qa polkit
Ubuntu用户可采用如下命令升级至安全版本或更高版本:
sudo apt-get update
sudo apt-get install policykit -1
验证修复,通过以下命令可查看Polkit是否为安全版本:
dpkg -l policykit -1
若您使用的操作系统目前还未提供更新补丁,或者您无法安装补丁,可以考虑在不影响业务的情况下移除 pkexec 的 SUID 位作为临时缓解措施,如执行以下命令:
chmod 0755 /usr/bin/pkexec
可以使用 ll /usr/bin/pkexec 查看是否具有提权权限,如果有,则使用上面的命令取消。
目前各Linux发行版官方均已给出安全补丁,建议用户尽快升级至安全版本,或参照官方说明措施进行缓解,CentOS、Ubuntu及Debian用户可参考以下链接:
https://ubuntu.com/security/CVE-2021-4034https://access.redhat.com/security/cve/CVE-2021-4034
https://security-tracker.debian.org/tracker/CVE-2021-4034