Linux Polkit的一个本地提权漏洞(cve-2021-4034)

1、漏洞描述:

在 polkit 的 pkexec 工具程序中发现了一个本地权限升级漏洞。
polkit 是用于在类Unix操作系统中控制系统范围特权的组件,它为非特权进程提供了与特权进程进行通信的有组织的方式。
polkit 的 pkexec 存在本地权限提升漏洞,已获得普通权限的攻击者可通过此漏洞获取root权限。

2、安全版本
所有的主流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
Ubuntu系列:
   Ubuntu 20.04 LTS:policykit-1 - 0.105-26ubuntu1.2
   Ubuntu 18.04 LTS:policykit-1 - 0.105-20ubuntu0.18.04.6
   Ubuntu 16.04 ESM:policykit-1 - 0.105-14.1ubuntu0.5+esm1
   Ubuntu 14.04 ESM:policykit-1 - 0.105-4ubuntu3.14.04.6+esm1

3、漏洞复现-POC

下载地址:https://github.com/berdav/CVE-2021-4034

使用centos7.6版本复现此漏洞

查看默认polkit版本,可以看到根据安全版本判断此版本存在该问题

 

自行创建普通账号,我是用的账号为test

上传POC 进行提权

4、修复

(1)临时解决方案

删除pkexec的SUID位:

chmod 0755 /usr/bin/pkexec

注:suid设置在umask值的第一位,suid的值为4,其作用是让执行该命令的用户以该命令拥有者(该组件的拥有者为root)的权限去执行

(2)升级polkit到安全版本

再次测试  已修复

 

posted @ 2022-03-15 17:54  -小-白-  阅读(724)  评论(0编辑  收藏  举报