CVE-2021-4034 pkexec提权漏洞

简介: Linux Polkit 的 pkexec程序中发现了一个本地权限提升漏洞。pkexec应用程序是一个 setuid 工具,旨在允许非特权用户根据预定义的策略以特权用户身份运行命令。

声明


请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该文章仅供学习用途使用。


一、漏洞概述


Linux Polkit 的 pkexec程序中发现了一个本地权限提升漏洞。pkexec应用程序是一个 setuid 工具,旨在允许非特权用户根据预定义的策略以特权用户身份运行命令。


由于当前版本的 pkexec 无法正确处理调用参数计数,并最终会尝试将环境变量作为命令执行。

攻击者可以通过控制环境变量,从而诱导 pkexec 执行任意代码,利用成功后,可导致非特权用户获得管理员权限。


二、影响范围


由于为系统预装工具(polkit),目前主流Linux版本系统均受影响

可以通过命令 rpm -qa polkit 查看版本信息


三、本地环境复现


环境: kali-linux-2021.4a-installer-amd64

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

image.png

下载到kali中

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

image.png

cd CVE-2021-4034/

make

./cve-2021-4034

image.png

提升至 root 权限!!!

四、修补建议


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

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

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

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


打补丁或升级到安全的版本,也可以pkexec 中删除 SUID 位作为临时缓解措施。


安全版本

image.png

五、漏洞原理深层剖析


请参考以下文章

->https://mp.weixin.qq.com/s/oRtXzf1HsHsqHK4DXfVtPg

->https://blog.qualys.com/vulnerabilities-threat-research/2022/01/25/pwnkit-local-privilege-escalation-vulnerability-discovered-in-polkits-pkexec-cve-2021-4034

->https://bbs.pediy.com/thread-271345.htm


总结


当使用普通用户权限执行 pkexec 时,"GCONV_PATH""LD_PRELOAD" 等不安全的环境变量会被删除,但攻击者可以通过参数数组的越界读写漏洞,重新引入不安全的环境变量,进而构造利用链获取root权限。

目录
相关文章
|
安全 Unix Linux
CentOS7 Sudo本地提权漏洞修复实践
CentOS7 Sudo本地提权漏洞修复实践
1350 0
CentOS7 Sudo本地提权漏洞修复实践
|
安全 Ubuntu Linux
CVE-2021-3560 Linux Polkit 权限提升漏洞
Polkit是默认安装在很多Linux发行版上的系统服务,它由systemd使用,因此任何使用systemd的Linux发行版也使用Polkit。
365 2
|
Linux 虚拟化 开发者
一键将CentOs的yum源更换为国内阿里yum源
一键将CentOs的yum源更换为国内阿里yum源
17560 31
|
安全 Cloud Native Shell
云上攻防:云原生篇&Docker容器逃逸
本文介绍了Docker的基本概念及其对渗透测试的影响,重点讲解了容器逃逸的方法。Docker是一种轻量级的容器技术,与虚拟机相比,具有更高的便携性和资源利用率。然而,这也带来了安全风险,特别是容器逃逸问题。文章详细描述了三种常见的容器逃逸方法:不安全的配置、相关程序漏洞和内核漏洞,并提供了具体的检测和利用方法。此外,还介绍了几种特定的漏洞(如CVE-2019-5736和CVE-2020-15257)及其复现步骤,帮助读者更好地理解和应对这些安全威胁。
788 0
云上攻防:云原生篇&Docker容器逃逸
|
缓存 监控 Linux
Linux配置成代理服务器
代理服务器(Proxy Server)是一种位于计算机网络中的中间服务器,它充当了客户端和目标服务器之间的中介,用于转发客户端请求并获取目标服务器的响应。代理服务器的主要功能包括以下几点:
7111 1
|
SQL Java 数据库连接
成功解决:was not registered for synchronization because synchronization is not active
这篇文章是关于解决Mybatis在同步过程中出现"was not registered for synchronization because synchronization is not active"错误的技术博客。
成功解决:was not registered for synchronization because synchronization is not active
|
前端开发 JavaScript
js【详解】Promise(含 Promise 的三种状态及其变化,创建 Promise, Promise.all 语法、Promise.all 实战范例、手写 Promise.all)
js【详解】Promise(含 Promise 的三种状态及其变化,创建 Promise, Promise.all 语法、Promise.all 实战范例、手写 Promise.all)
2640 0
|
安全 Unix Linux
CVE-2021-4034 pkexec 本地提权复现
CVE-2021-4034 pkexec 本地提权复现
949 0
|
弹性计算 数据中心
香港服务器_香港云服务器_海外服务器租用供应商——阿里云
香港服务器_香港云服务器_海外服务器租用供应商——阿里云
|
网络协议 C++ Docker
Docker pull拉取镜像报错“Error response from daemon: Get "https://registry-1.docker.io/v2”解决办法
Docker pull拉取镜像报错“Error response from daemon: Get "https://registry-1.docker.io/v2”解决办法
57874 2