一、情况分析

    权限提升漏洞(CVE-2021-4034)是由于pkexec无法正确处理调用参数,从而将环境变量作为命令执行,具有任意用户权限的攻击者都可以在默认配置下通过修改环境变量来利用此漏洞,从而获得受影响主机的root权限。目前该漏洞的细节和PoC已公开,请相关用户尽快采取措施进行防护。

    Polkit(PolicyKit)是类Unix系统中一个应用程序级别的工具集,通过定义和审核权限规则,实现不同优先级进程间的通讯。pkexec是Polkit开源应用框架的一部分,可以使授权非特权用户根据定义的策略以特权用户的身份执行命令。

    二、影响范围

    受影响版本

    2009年5月至今发布的所有 Polkit 版本

    注:Polkit预装在CentOS、Ubuntu、Debian、Redhat、Fedora、Gentoo、Mageia等多个Linux发行版上,所有存在Polkit的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 14.04 ESM:policykit-1-0.105-4ubuntu3.14.04.6+esm1

    Ubuntu 16.04 ESM:policykit-1-0.105-14.1ubuntu0.5+esm1

    Ubuntu 18.04 LTS:policykit-1-0.105-20ubuntu0.18.04.6

    Ubuntu 20.04 LTS:policykit-1-0.105-26ubuntu1.2

    Ubuntu 21.10:policykit-1-0.105-31ubuntu0.1

    Debain:

    Debain stretch:policykit-1 0.105-18+deb9u2

    Debain buster:policykit-1 0.105-25+deb10u1

    Debain bullseye:policykit-1 0.105-31+deb11u1

    Debain bookworm,bullseye:policykit-1 0.105-31.1

    三、处置建议

    3.1 版本检测

    Linux系统用户可以通过查看Polkit版本来判断当前系统是否在受影响范围内,主流Linux发行版命令如下:

    CentOS:
    rpm -qa polkit

    Ubuntu:
    dpkg -l policykit-1

    3.2 官方升级

    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:
    yum clean all && yum makecache
    yum update polkit -y

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

    Debian:
    apt upgrade policykit-1

    3.3 临时防护措施

    若受影响用户使用的操作系统还未发布修复程序,或暂时无法安装补丁更新,在不影响业务的情况下可使用以下措施进行临时防护。

    执行下列系统命令移除pkexec 的 suid位:
    chmod 0755 /usr/bin/pkexec