复现PolicyKit 本地权限提升漏洞!

复现PolicyKit 本地权限提升漏洞!

kalilm 622 2022-03-22

1#漏洞描述
Polkit是一个用于在Unix兼容系统中对应用程序进行权限控制的工具。
2022年1月26日,PolicyKit 中存在权限提升漏洞在互联网上爆出,基本可以通杀Linux!
Github-C语言版本: https://github.com/berdav/CVE-2021-4034
Github-Python语言版本: https://github.com/nikaiw/CVE-2021-4034

注意:

pkexec 默认安装在所有主要的 Linux 发行版上(团队内部已经复现,发现Ubuntu、Debian、CentOS包括Kali Linux发行版都存在利用, 其他发行版也可能存在利用);
pkexec 自 2009 年 5 月创建以来就存在漏洞(来源于提交:c8c3d83, 提交的注释为:"Add a pkexec(1) command");
任何非特权本地用户都可以利用此漏洞获取root权限;
虽然这个漏洞在技术上是内存损坏,但它是以独立于架构的方式立即、可靠地利用;

2#影响版本
CentOS系列:

CentOS 6 polkit < polkit-0.96-11.el6_10.2
CentOS 7 polkit < polkit-0.112-26.el7_9.1
CentOS 8.0 polkit < polkit-0.115-13.el8_5.1
CentOS 8.2 polkit < polkit-0.115-11.el8_2.2
CentOS 8.4 polkit < polkit-0.115-11.el8_4.2

Debain系列:

Debain 拉伸策略kit-1 < 0.105-18+deb9u2
Debain buster policykit-1 < 0.105-25+deb10u1
Debain 书虫,靶心策略包-1 < 0.105-31.1

Ubuntu系列:

Ubuntu 21.10 (Impish Indri) policykit-1 < 0.105-31ubuntu0.1
Ubuntu 21.04 (Hirsute Hippo) policykit-1 Ignored (达到生命周期结束)
Ubuntu 20.04 LTS (Focal Fossa) policykit-1 < 0.105-26ubuntu1.2)
Ubuntu 18.04 LTS (Bionic Beaver) policykit-1 < 0.105-20ubuntu0.18.04.6)
Ubuntu 16.04 ESM (Xenial Xerus) policykit-1 <0.105-14.1ubuntu0.5 + esm1)
Ubuntu 14.04 ESM (Trusty Tahr) policykit-1 < 0.105-4ubuntu3.14.04.6+esm1)

3#漏洞危害
漏洞编号:CVE-2021-4034
漏洞威胁等级:高危
漏洞评分:7.8
公开状态:已经公开
在野利用:已经发现

4#漏洞复现
团队成员在第一时间,已经成功进行漏洞复现
存在两个编程语言版本的Exp(漏洞利用原理均相同):C版本和Python版本

C版本的Exp(已经用gcc编译):


5#漏洞复现过程
复现其实很简单,直接下载对应Exp执行即可,也分为C和Python两个版本

C版本的复现:
需要编译后才能复现,如下:

Python版本的复现:
直接执行即可成功复现,如下:

6#官方补丁修复

1、目前官方已发布补丁修复此漏洞,建议受影响用户及时安装进行防护。
下载链接:https://gitlab.freedesktop.org/polkit/polkit/-/commit/a2bf5c9c83b6ae46cbd5c779d3055bff81ded683

2、目前主流Linux发行版均已发布安全补丁或更新版本修复此漏洞,建议用户尽快安装补丁或参照官方措施进行防护:

Linux发行版
官方通告
Ubuntu
https://ubuntu.com/security/CVE-2021-4034
Debain
https://security-tracker.debian.org/tracker/CVE-2021-4034
Redhat
https://access.redhat.com/security/cve/CVE-2021-4034
Gentoo
https://bugs.gentoo.org/show_bug.cgi?id=CVE-2021-4034
Mageia
https://advisories.mageia.org/CVE-2021-4034.html

注:如CentOS、Ubuntu、Debian等使用包管理器更新Polkit的Linux发行版,可直接运行下列命令进行更新修复:

CentOS:
    1.yum clean all && yum makecache
    2.yum update polkit -y

Ubuntu:

 1.sudo apt-get update
 2.sudo apt-get install policykit-1

Debian:

apt upgrade policykit-1

7#漏洞应急响应

  1. 修改 pkexec的权限:
chmod 0755 /usr/bin/pkexec

  1. 如 pkexec非必要,可临时删除该可执行程序;

3.使用redhat提供的缓解方式,请参考:
https://access.redhat.com/security/cve/cve-2021-4034

参考链接:
https://mp.weixin.qq.com/s/Jo-8iQ804xRs6WxdR1q-vA
https://github.com/berdav/CVE-2021-4034
https://www.qualys.com/2022/01/25/cve-2021-4034/pwnkit.txt
https://github.com/nikaiw/CVE-2021-4034