Linux Polkit权限提升漏洞(CVE-2021-3560)
发布时间 2021-06-110x00 漏洞概述
CVE ID | CVE-2021-3560 | 时 间 | 2021-06-11 |
类 型 | LPE | 等 级 | 高危 |
远程利用 | 否 | 影响范围 | |
攻击复杂度 | 低 | 可用性 | 高 |
用户交互 | 无 | 所需权限 | 低 |
PoC/EXP | 已公开 | 在野利用 |
0x01 漏洞详情
Polkit是许多Linux 发行版上默认安装的系统服务,它被systemd使用,所以任何使用systemd的Linux发行版都会使用polkit。
2021年06月03日,RedHat发布安全公告,修复了Linux Polkit中一个存在了7年的权限提升漏洞(CVE-2021-3560),该漏洞的CVSS评分为7.8,成功利用此漏洞的攻击者能够获得系统上的 root 权限。目前GitHub的安全研究员已经公开披露了此漏洞的细节和PoC。
漏洞细节
该漏洞是由于当请求进程在调用polkit_system_bus_name_get_creds_sync 之前与 dbus-daemon 断开连接时,该进程无法获得进程的唯一uid和pid,也无法验证请求进程的权限。
可以通过启动dbus-send命令但在 polkit 仍在处理请求的过程中终止它来触发此漏洞,在认证请求中终止dbus-send(一个进程间通信命令)会导致一个错误,因为polkit将要求提供一个不再存在的连接的UID(因为该连接已被终止)。而polkit会以一种错误的方式处理此问题:它不会拒绝这个连接请求,而是把这个请求视为来自UID为0的进程。
研究人员表示,该漏洞很容易被利用,只需要使用 bash、kill 和 dbus-send 等标准终端工具执行几条命令即可。
影响范围
RHEL 8
Fedora 21及更高版本
Debian testing (“bullseye”)
Ubuntu 20.04
0x02 处置建议
目前此漏洞已经修复,建议参考Linux各发行版本的官方通告及时升级更新:
RHEL 8:
https://access.redhat.com/security/cve/CVE-2021-3560
Fedora 21及更高版本:
https://bugzilla.redhat.com/show_bug.cgi?id=1967424
Debian testing (“bullseye”):
https://security-tracker.debian.org/tracker/CVE-2021-3560
Ubuntu 20.04:
https://ubuntu.com/security/CVE-2021-3560
0x03 参考链接
https://access.redhat.com/security/cve/CVE-2021-3560
https://github.blog/2021-06-10-privilege-escalation-polkit-root-on-linux-with-bug/
https://www.theregister.com/2021/06/11/linux_polkit_package_patched/
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-3560
0x04 时间线
2021-06-03 RedHat发布安全公告
2021-06-11 VSRC发布安全通告
0x05 附录
CVSS评分标准官网:http://www.first.org/cvss/