7 年前一個未被發現的錯誤允許使用 polkit 進行權限提升

凱文·巴克豪斯 (安全研究員) 共享 幾天前在 GitHub 博客上的註釋是 在 polkit 服務中遇到錯誤 與 systemd(一個常見的 Linux 系統和服務管理器組件)相關聯,其中存在七年的漏洞 允許進行特權升級 它一直潛伏在各種 Linux 發行版中,並於上週在一個協調版本中進行了修補。

Polkit 是用於定義和管理策略的應用程序級工具包 這允許 非特權進程 與特權進程交談,它默認安裝在各種 Linux 發行版上。 該漏洞於七年前在 0.113 版本中引入(commit bfa5036),並在安全研究員 Kevin Backhouse 最近披露後於 3 月 XNUMX 日修復。

作為 GitHub 安全實驗室的成員,我的工作是通過發現和報告漏洞來幫助提高開源軟件的安全性。 幾週前,我在 polkit 中發現了一個提權漏洞。 與 polkit 維護人員和紅帽安全團隊協調漏洞披露。 它已公開發布,該修復程序於 3 年 2021 月 2021 日發布並指定為 CVE-3560-XNUMX

“每個使用 polkit 易受攻擊版本的 Linux 系統都有可能受到利用 CVE-2021-3560 缺陷的攻擊,”Backhouse 說。 說這個漏洞非常容易被利用, 因為它只需要一些使用標準終端工具(如 bash、kill 和 dbus-send)的命令。

“該漏洞是通過啟動 dbus-send 命令觸發的,但在 polkit 仍在處理請求時將其殺死,”Backhouse 解釋說。

巴克豪斯 發布了一個視頻 利用此漏洞的攻擊的 PoC 表明它很容易被激活。

“該漏洞允許無特權的本地用戶獲得系統上的 root shell。 使用一些標準的命令行工具很容易利用,正如您在這個短視頻中看到的那樣,“專家在博客文章中寫道。

殺死 dbus-send 時 (進程之間的通信命令), 在身份驗證請求中間導致錯誤 這來自 polkit 請求不再存在的連接的 UID(因為連接被丟棄)。

“事實上,polkit 以一種特別不幸的方式錯誤地處理了錯誤:它沒有拒絕請求,而是將其視為來自 UID 0 的進程,”Backhouse 解釋道。 “換句話說,您立即授權請求,因為您認為請求來自根進程。”

這不會一直發生,因為 polkit 對 dbus-daemon 的 UID 查詢在不同的代碼路徑上多次發生。 Backhouse 說,通常這些代碼路徑會正確處理錯誤,但代碼路徑容易受到攻擊,如果在該代碼路徑處於活動狀態時發生斷開連接,則會發生特權提升。 這只是時間問題,由於涉及多個進程,因此會以不可預測的方式變化。

另外, 研究人員公佈了下表 其中包含當前易受攻擊的發行版列表:

分配 易受傷害的?
RHEL 7 沒有
RHEL 8
Fedora 20(或更早版本) 沒有
Fedora 21(或更高版本)
Debian 10(“破壞者”) 沒有
Debian測試
Ubuntu的18.04 沒有
Ubuntu的20.04

安裝了 polkit 0.113 或更高版本的 Linux 發行版,例如 Debian(不穩定分支)、RHEL 8、Fedora 21 和更高版本以及 Ubuntu 20.04,都會受到影響。

巴克豪斯推測,這個漏洞的間歇性是它七年來未被發現的原因。

“CVE-2021-3560 允許無特權的本地攻擊者獲得 root 權限,”Backhouse 說。 “利用它非常簡單且快速,因此盡快更新 Linux 安裝非常重要。”

終於 如果您有興趣了解更多信息, 您可以查看詳細信息 在下面的鏈接中。


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責資料:AB Internet Networks 2008 SL
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。