凱文·巴克豪斯 (安全研究員) 共享 幾天前在 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 安裝非常重要。”
終於 如果您有興趣了解更多信息, 您可以查看詳細信息 在下面的鏈接中。