风险通告
近日,奇安信CERT监测到国外安全研究团队披露了Polkit pkexec权限提升漏洞(CVE-2021-4034)。具有低权限的攻击者可利用此漏洞在易受攻击的主机上获得ROOT特权。安全研究人员已经在默认安装的 Ubuntu、Debian、Fedora 和 CentOS 系统上成功利用此漏洞获得了完整的ROOT权限。目前,此漏洞细节、PoC及EXP已公开,经奇安信CERT验证,此漏洞EXP有效且稳定。鉴于此漏洞影响较大,建议客户尽快做好自查及防护。
当前漏洞状态
技术细节 | PoC状态 | EXP状态 | 在野利用 |
已公开 | 已公开 | 已公开 | 未知 |
漏洞描述
Polkit是一个用于在类Unix操作系统中控制系统范围权限的组件,它为非特权进程与特权进程提供了一种通信方式。Polkit中的pkexec应用程序旨在允许非特权用户根据预定义的策略以特权用户身份运行命令。Polkit pkexec存在本地权限提升漏洞(CVE-2021-4034)。由于pkexec无法正确处理调用参数计数,攻击者可以通过制作环境变量来诱导pkexec执行任意代码。具有低权限的攻击者可以利用此漏洞绕过pkexec自带的安全保护措施,获取目标机器的ROOT权限。目前,此漏洞细节以及PoC/EXP都已经公开,经验证,此漏洞利用难度低且可以稳定利用,建议客户尽快自查修复。
公开的PoC利用此漏洞向系统注入环境变量GCONV_PATH,将该环境变量指向攻击者存放gconv-modules文件的目录,在gconv-modules文件中指定攻击者的恶意.so文件,pkexec会执行.so文件里面的gonv_init()函数,在gonv_init()函数内将自身进程的各个权限标志位设为0从而达到提权。
CVE-2021-4034 Linux Polkit权限提升漏洞
漏洞名称 | Linux Polkit权限提升漏洞 | ||||
漏洞类型 | 权限提升 | 风险等级 | 高危 | 漏洞ID | CVE-2021-4034 |
公开状态 | 已公开 | 在野利用 | 未知 | ||
漏洞描述 | Polkit pkexec存在本地权限提升漏洞(CVE-2021-4034)。由于pkexec无法正确处理调用参数计数,攻击者可以通过制作环境变量来诱导pkexec执行任意代码。具有低权限的攻击者可以利用此漏洞绕过pkexec自带的安全保护措施,获取目标机器的ROOT权限。 | ||||
参考链接 | |||||
https://blog.qualys.com/vulnerabilities-threat-research/2022/01/25/pwnkit-local-privilege-escalation-vulnerability-discovered-in-polkits-pkexec-cve-2021-4034 |
风险等级
影响范围
1.主流Linux系统
Polkit默认安装在多个主流Linux系统上,包括Ubuntu、Debian、Fedora、 CentOS、RedHat系统。
此漏洞由2009年5月发布的第一个版本引入,并影响截止至2022年1月26日该commit(https://gitlab.freedesktop.org/polkit/polkit/-/commit/a2bf5c9c83b6ae46cbd5c779d3055bff81ded683)发布之前的所有版本。
2.国产操作系统
部分受影响的国产化操作系统列表:
操作系统 |
银河麒麟高级服务器操作系统 V10 |
银河麒麟高级服务器操作系统 V10 SP1 |
银河麒麟高级服务器操作系统 V10 SP2 |
统信UOS服务器操作系统V20 |
银河麒麟桌面版操作系统 V10 |
银河麒麟桌面版操作系统 V10 SP1 |
统信UOS桌面版操作系统V20 |
中标麒麟桌面版操作系统V7.0 |
处置建议
目前各Linux发行版官方均已给出安全补丁,建议用户尽快升级至安全版本,或采取奇安信产品解决方案。
以下为Debian、RedHat等Linux发行版为Polkit更新的安全版本列表:
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 | |
Debian | stretch | 0.105-18+deb9u2 |
buster | 0.105-25+deb10u1 | |
bullseye | 0.105-31+deb11u1 | |
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 | |
Fedora | Fedora 34 | polkit-0.117-3.fc34.2 |
Fedora 35 | polkit-0.120-1.fc35.1 |
1.版本升级
用户可以使用以下命令升级Polkit到最新版。
CentOS、RedHat系列:
yum clean all && yum makecache
yum update polkit -y
Debian、Ubuntu系列:
sudo apt-get update
sudo apt-get install policykit-1
2. 版本检测
用户可通过下面的命令检测升级后的版本是否是安全版本:
CentOS、RedHat系列:
rpm -qa polkit
Debian、Ubuntu系列:
dpkg -l policykit-1
3、缓解措施
若暂时无法安装安全更新,在不影响业务的情况下可采用以下缓解措施进行防护:
删除pkexec程序的SUID 位:chmod 755 /usr/bin/pkexec
另外,用户可参考以下链接获取官方通告:
Ubuntu: https://ubuntu.com/security/CVE-2021-4034
Redhat: https://access.redhat.com/security/cve/CVE-2021-4034
Debian: https://security-tracker.debian.org/tracker/CVE-2021-4034
Fedora: https://bodhi.fedoraproject.org/updates/FEDORA-2022-1acf1bb522
https://bodhi.fedoraproject.org/updates/FEDORA-2022-da040e6b94
参考资料
发表评论