修复由 polkit 的组件 pkexec 引发的严重本地提权漏洞

2022年1月25日,突然曝出的坏消息令 Linux 用户们错愕不已 —— Polkit 系统工具中存在一项已有 12 年“悠久历史”的大 bug,攻击者能够借此在大多数主流 Linux 发行版中获得至高无上的 root 权限。
简单来说,当黑客通过弱口令等途径,以普通用户的身份登录到你的 linux 系统,他能很简单的通过 pkexec 组件获取到 root 权限,然后把你的系统重装成 windows

为什么PwnKit 漏洞能提权 root


▲ 看到第三位的 s (set uid)权限没有,就是他的原因。
当一个可执行文件具有 s 权限,普通用户执行该文件的时候,经过系统层层审批( 复杂的 ACL ) 会临时获得 root 权限。
所以,该漏洞修复起来也简单,直接摘掉 s 权限就行了。

野路子修复 PwnKit 漏洞

修复 PwnKit 漏洞
▲ chmod u-s /usr/bin/pkexec
centos 系统可以直接用本命令修复。

修复由 polkit 的组件引发的严重本地提权漏洞

▲ 从 redhat 官方我们能看到2022年1月26日更新的 polkit 已经修复了该漏洞,所以我们直接升级 polkit 就行了。

yum clean all && yum makecache
yum update polkit -y
rpm -qi `rpm -qf /usr/bin/pkexec`

centos系统直接复制上面的命令


▲ 当你看到 Build Date 是 2022年1月26日,说明漏洞修复完成,这样,你就不用摘除pkexec 的 s 权限了,免得依赖的服务出问题。

Ubuntu 修复 PwnKit 漏洞

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

Debian修复 CVE-2021-4034 提权漏洞

apt upgrade policykit-1



▲ find /usr -perm 4755 -exec ls -l {} \; 命令能找出/usr 目录下所有带 s 权限的文件,不要去随意改动 s 权限,会出问题。

为什么系统会设置这么一个看起来很危险的 set uid 权限:
我们来看一个很常见的场景,普通用户修改自己的密码,修改密码的时候,会更新 /etc/shadow 这个文件,但,普通用户压根就写不动这个文件

/etc/shadow 的权限是0,任何人都无法读、写、执行,当普通用户用 passwd (/usr/bin/passwd 带s 权限)命令修改自己密码的时候,临时有了一部分 root 权限,所以能正常的改写 /etc/shadow 文件,从而正常的修改自己的密码。

原创文章,转载请注明: 转载自笛声

本文链接地址: 修复由 polkit 的组件 pkexec 引发的严重本地提权漏洞

9 条评论

  • 西枫里博客 2022年1月29日 回复

    欧了,照着大佬命令敲一遍就完事了~

    • dige 2022年5月10日 回复 作者

      西风大佬好。

  • 龙笑天 2022年1月29日 回复

    已经第一时间修补了~

    • dige 2022年5月10日 回复 作者

      龙大佬好。

  • 新皇 2022年1月30日 回复

    存在12年,估计已经被很多人利用过了。

  • 沈唁志 2022年1月31日 回复

    已更新

  • 流金岁月 2022年2月1日 回复

    感谢笛声大佬,已经更新修复了

    • dige 2022年2月1日 回复 作者

      新年快乐。

  • bulexu 2022年4月21日 回复

    给力

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

Copyright © 2015-2024 笛声博客 All Rights Reserved     浙ICP备15036123号-1