【紧急漏洞】Linux polkit本地权限提升漏洞(CVE-2021-4034)POC复现过程与修复方法

简介: 【紧急漏洞】Linux polkit本地权限提升漏洞(CVE-2021-4034)POC复现过程与修复方法

Linux polkit本地权限提升漏洞(CVE-2021-4034)POC复现过程与修复方法


640.png


一、漏洞详情


  • 漏洞名称:Linux polkit本地权限提升漏洞(CVE-2021-4034)
  • 漏洞类型:应用漏洞
  • 威胁等级:高危
  • CVE编号: CVE-2021-4034
  • 披露时间: 2022-01-26
  • 漏洞描述: 近日,国外安全团队发布安全公告称,在 polkit 的 pkexec 程序中发现了一个本地权限提升漏洞。pkexec 应用程序是一个 setuid 工具,旨在允许非特权用户根据预定义的策略以特权用户身份运行命令。由于当前版本的 pkexec 无法正确处理调用参数计数,并最终会尝试将环境变量作为命令执行。攻击者可以通过控制环境变量,从而诱导 pkexec 执行任意代码。利用成功后,可导致非特权用户获得管理员权限。


具体漏洞原理分析见如下链接


https://blog.qualys.com/vulnerabilities-threat-research/2022/01/25/pwnkit-local-privilege-escal


640.jpg

  • 风险等级:高

目前漏洞POC已被泄露,攻击者利用该漏洞可导致恶意用户权限提升等危害

  • 影响版本:由于为系统预装工具,目前主流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


目前RedHat已经提供修复包参考如下链接


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


640.jpg

截止到目前2022/01/26, CentOS目前已提供安全更新包


http://mirror.centos.org/centos/7/updates/x86_64/Packages/polkit-0.112-26.el7_9.1.x86_64.rpm


640.jpg


修复建议:CentOS用户官方源更新采用如下命令升级到安全版本或更高版本:


yum clean all && yum makecache
yum update polkit -y


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


rpm -qa polkit


二、漏洞复现POC


如下图所示

640.jpg

640.jpg



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


三、漏洞临时缓解措施


chmod 0755 /usr/bin/pkexec


如下图所示,使用临时缓解措施后可以看到POC不再成功


640.jpg


对比临时缓解措施修复前和修复后s位


ll /usr/bin/pkexec
stat /usr/bin/pkexec

640.jpg


四、漏洞彻底修复方法


也可以手动下载polkit-0.112-26.el7_9.1.x86_64.rpm进行rpm -Uvh修复


rpm -Uvh polkit-0.112-26.el7_9.1.x86_64.rpm
rpm -aq | grep polkit查看Polkit是否为安全版本


如图所示,先还原成原状态,再rpm -Uvh升级验证是否修复

640.jpg

640.jpg


POC程序运行这时无法提权,漏洞修复成功

相关文章
|
9月前
|
Ubuntu 物联网 Linux
从零安装一个Linux操作系统几种方法,以Ubuntu18.04为例
一切就绪后,我们就可以安装操作系统了。当系统通过优盘引导起来之后,我们就可以看到跟虚拟机中一样的安装向导了。之后,大家按照虚拟机中的顺序安装即可。 好了,今天主要介绍了Ubuntu Server版操作系统的安装过程,关于如何使用该操作系统,及操作系统更深层的原理,还请关注本号及相关圈子。
|
8月前
|
安全 Linux 网络安全
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
223 0
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
|
8月前
|
安全 Linux iOS开发
Tenable Nessus 10.10 (macOS, Linux, Windows) - 漏洞评估解决方案
Tenable Nessus 10.10 (macOS, Linux, Windows) - 漏洞评估解决方案
450 0
Tenable Nessus 10.10 (macOS, Linux, Windows) - 漏洞评估解决方案
|
9月前
|
缓存 监控 Linux
Linux系统清理缓存(buff/cache)的有效方法。
总结而言,在大多数情形下你不必担心Linux中buffer与cache占用过多内存在影响到其他程序运行;因为当程序请求更多内存在没有足够可用资源时,Linux会自行调整其占有量。只有当你明确知道当前环境与需求并希望立即回收这部分资源给即将运行重负载任务之前才考虑上述方法去主动干预。
2327 10
|
9月前
|
安全 Linux iOS开发
Tenable Nessus 10.9.3 (macOS, Linux, Windows) - 漏洞评估解决方案
Tenable Nessus 10.9.3 (macOS, Linux, Windows) - 漏洞评估解决方案
711 0
Tenable Nessus 10.9.3 (macOS, Linux, Windows) - 漏洞评估解决方案
|
9月前
|
Ubuntu Linux 图形学
推广与体验Ubuntu Linux的便捷方法
如果你的朋友或家人对尝试Linux感兴趣,但希望在安装之前先体验一下,你可以分享以下链接给他们:Ubuntu在线导览。通过这个链接,他们可以在任何地方轻松体验Ubuntu,无需安装即可深入了解这个流行的操作系统。
|
9月前
|
XML 缓存 Linux
在Linux环境下解决Visual Studio Code字体显示异常和字体替换方法。
解决Linux下VS Code字体显示异常,需要对Linux字体渲染机制有所理解,并对VS Code的配置选项进行合理设置。替换字体时则要通过系统字体配置或VS Code设置来完成。通过上述方法,可以有效地解决字体显示问题,从而提升代码编辑的视觉体验。
1346 0
|
12月前
|
NoSQL Linux 编译器
GDB符号表概念和在Linux下获取符号表的方法
通过掌握这些关于GDB符号表的知识,你可以更好地管理和理解你的程序,希望这些知识可以帮助你更有效地进行调试工作。
508 16
|
10月前
|
网络协议 Ubuntu Linux
Wireguard in Linux的安装方法
本文介绍了如何在Ubuntu和Rocky Linux中安装配置WireGuard,并探讨了配置过程中可能出现的DNS泄露问题及解决方法,包括通过nmtui设置DNS及调整DNS优先级参数。