核心漏洞 Linux這允許你破壞只讀檔案。

在核心 Linux 已發現一個漏洞 (CVE-2022-0847),該漏洞允許攻擊者覆蓋任何文件的頁面快取內容,包括唯讀模式下的檔案、使用 O_RDONLY 標誌開啟的文件,以及位於以唯讀模式掛載的檔案系統上的檔案。實際上,此漏洞可被利用來向任意進程注入程式碼或破壞已開啟檔案中的資料。例如,攻擊者可以修改 sshd 程序的 authorized_keys 檔案的內容。目前已提供一個可用於測試的漏洞原型。

這個問題的代號為 Dirty Pipe,類似於 2016 年發現的嚴重漏洞 Dirty COW。 值得注意的是,就危險程度而言,Dirty Pipe 與 Dirty COW 處於同一級別,但操作起來要容易得多。 該漏洞是在分析有關從日誌伺服器下載壓縮檔案的系統中透過網路下載的檔案定期損壞的投訴時發現的(載入的系統在37 個月內出現3 次損壞),其準備過程使用了splice()操作和無名管道。

該漏洞從核心開始顯現。 Linux 5.8 版本於 2020 年 8 月發布,即它存在於… Debian 11,但不影響基本核心 Ubuntu 20.04 LTS。 RHEL 8.x 和 openSUSE/SUSE 15 核心最初是基於較舊的分支,但該問題可能已移植到這些版本(目前尚無確切細節)。您可以在以下頁面追蹤這些發行版的軟體包更新: Debian,SUSE, UbuntuRHEL、Fedora、Gentoo、Arch Linux5.16.11、5.15.25 和 5.10.102 版本中提供了針對此漏洞的修復。該修復程序也包含在平台使用的核心中。 Android.

這個漏洞是由於函數copy_page_to_iter_pipe()和push_pipe()的程式碼中缺乏「buf->flags」值的初始化而引起的,儘管在分配結構時和某些操作期間內存並未被清除。無名管道,來自另一個操作的值。 使用此功能,非特權本地用戶可以實現標誌中 PIPE_BUF_FLAG_CAN_MERGE 值的出現,這允許您透過簡單地將新資料寫入專門準備的未命名管道來組織頁面快取中的資料覆蓋。

對於攻擊,目標檔案必須是可讀的,並且由於寫入管道時不會檢查存取權限,因此也可以對位於唯讀安裝分割區中的檔案(例如,對於檔案 c CD-只讀記憶體)。 替換頁面快取中的信息後,當從文件中讀取數據時,進程將接收到的不是實際數據,而是替換後的數據。

操作歸結為創建一個未命名通道並用任意資料填充它,以確保在與其關聯的所有環結構中設定 PIPE_BUF_FLAG_CAN_MERGE 標誌。 接下來,從通道讀取數據,但在 pipeline_inode_info 環結構中的所有 pipeline_buffer 結構實例中仍保留設定該標誌。 然後呼叫 splice() 將目標檔案中的資料讀取到未命名管道中,從所需的偏移量開始。 當寫入資料到這個無名管道時,由於PIPE_BUF_FLAG_CAN_MERGE標誌被設置,頁面快取中的資料將被覆蓋,而不是創建pipe_buffer結構的新實例。

來源: opennet.ru

為具有 DDoS 保護、VPS VDS 服務器的站點購買可靠的主機 🔥 購買具備 DDoS 防護的可靠網站寄存服務,包括 VPS 和 VDS 伺服器 | ProHoster