Polkit 中的漏洞可让您提升系统权限

Polkit 组件中已发现一个漏洞 (CVE-2021-3560),该漏洞用于发行版中,允许非特权用户执行需要提升访问权限的操作(例如,安装 USB 驱动器),从而允许本地用户获得系统的root权限。该漏洞已在 Polkit 版本 0.119 中修复。

该问题自版本 0.113 以来一直存在,但许多发行版(包括 RHEL、Ubuntu、Debian 和 SUSE)已将受影响的功能向后移植到基于旧版 Polkit 版本的软件包中(发行版中已提供软件包修复程序)。

该问题体现在 polkit_system_bus_name_get_creds_sync() 函数中,该函数获取请求权限升级的进程的标识符(uid 和 pid)。 Polkit 通过在 DBus 中分配唯一的名称来识别该进程,然后使用该名称来验证权限。如果进程在 polkit_system_bus_name_get_creds_sync 处理程序启动之前与 dbus-daemon 断开连接,则处理程序会收到错误代码而不是唯一名称。

该漏洞是由于返回的错误代码未得到正确处理,并且 polkit_system_bus_name_get_creds_sync() 函数返回 TRUE 而不是 FALSE,尽管未能将进程与 uid/pid 进行匹配并验证进程请求的权限。调用 polkit_system_bus_name_get_creds_sync() 函数的代码假定检查成功,并且升级权限的请求来自 root 而不是非特权用户,这使得无需额外的身份验证和凭据验证即可执行特权操作。

来源: opennet.ru

添加评论