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

添加評論