systemd-coredump 中的一個漏洞,允許確定 suid 程式的記憶體內容

systemd-coredump 元件中發現了一個漏洞 (CVE-2022-4415),該元件處理進程崩潰後產生的核心文件,允許非特權本地用戶確定使用 suid root 標誌運行的特權進程的記憶體內容。 預設配置問題已在 openSUSE、Arch、Debian、Fedora 和 SLES 發行版上確認。

該漏洞是由於未正確處理 systemd-coredump 中的 fs.suid_dumpable sysctl 參數造成的,該參數設定為預設值 2 時,允許為帶有 suid 標誌的進程產生核心轉儲。 據了解,核心寫入的suid進程的核心檔案必須設定存取權限,只允許root使用者讀取。 systemd-coredump 實用程式由核心呼叫來保存核心文件,它將核心文件儲存在根 ID 下,但也根據最初啟動進程的擁有者的 ID 提供對核心文件的基於 ACL 的讀取存取權。

此功能可讓您下載核心文件,而無需考慮程式可以更改使用者 ID 並以提升的權限運行的事實。 該攻擊歸結為這樣一個事實:使用者可以啟動 suid 應用程式並向其發送 SIGSEGV 訊號,然後載入核心檔案的內容,其中包括異常終止期間進程的記憶體切片。

例如,使用者可以執行“/usr/bin/su”,並在另一個終端中使用命令“kill -s SIGSEGV `pidof su`”終止其執行,之後systemd-coredump會將核心檔案保存在/ var中/ lib/systemd/ 目錄coredump,為其設定允許目前使用者讀取的ACL。 由於 suid 實用程式「su」將 /etc/shadow 的內容讀取到記憶體中,因此攻擊者可以存取有關係統上所有使用者的密碼雜湊的資訊。 sudo 實用程式不易受到攻擊,因為它透過 ulimit 禁止產生核心檔案。

據systemd開發人員稱,該漏洞從systemd版本247(2020年246月)開始出現,但根據發現該問題的研究人員稱,版本0也受到影響。如果systemd使用libacl庫(默認在所有流行的發行版)。 該修復目前以補丁形式提供。 您可以在以下頁面上追蹤發行版中的修復:Debian、Ubuntu、Gentoo、RHEL、SUSE、Fedora、Gentoo、Arch。 作為安全解決方法,您可以將 sysctl fs.suid_dumpable 設定為 XNUMX,這會禁止將轉儲傳送至 systemd-coredump 處理程序。

來源: opennet.ru

添加評論