研究人員揭露Linux高風險漏洞部分細節潛在影響極大
昨天提到有研究人員透露多數Linux 發行版都存在某個高風險安全漏洞,這個漏洞評分高達9.9/10 分,借助漏洞攻擊者無需身份驗證即可遠端執行任意程式碼。今天發現該漏洞的研究人員開始揭露漏洞的細節,該漏洞位於CUPS 元件中(通用UNIX 列印系統),有些情況下這是預設啟用的,有些情況下則沒有預設啟用。
受影響的作業系統包括大多數Linux 發行版、部分BSD 系統、ChromeOS/ChromiumOS、Oracle Solaris,或許還有更多系統受影響。
目前已經分配CVE 編號的漏洞清單:
CVE-2024-47176:cups-browsed<= 2.0.1,綁定在UDP INADDR_ANY:631 上信任來自任何來源的資料包並觸發Get-Printer-Attributes 對攻擊者控制的URL 的IPP 列印請求。
CVE-2024-47076:libcupsfilters <= 2.1b1,cfGetPrinterAttributes5 未驗證或清理從IPP 伺服器傳回的IPP 屬性,從而向CUPS 系統的其餘部分提供攻擊者控制的資料。
CVE-2024-47175:libppd <= 2.1b1,ppdCreatePPDFromIPP2 在將IPP 屬性寫入到臨時PPD 檔案時不會驗證或清理,從而導致在產生的PDD 中註入攻擊者控制的資料。
CVE-2024-47177:cups-filters <= 2.0.1,foomatic-rip 允許透過PPD 參數執行任意指令FoomaticRIPCommandLine
有直接參與CUPS 計畫的開發者稱:
從一般的安全角度來看,如今整個Linux 系統只是一個無休止、無可救藥的安全漏洞大雜燴,等待著被利用。
如何利用該漏洞:
未經身份驗證的攻擊者可以遠端悄悄利用惡意URL 取代現有印表機的IPP URL 或安裝新的印表機IPP URL,從而導致啟動列印作業時在該電腦上執行任意命令。
其中在公網上攻擊者只需要遠端向設備UDP 631 連接埠發送特殊資料包即可,無需任何身份驗證;如果是在內網,則可以透過欺騙zeroconf/mDNS/DNS-SD 實現相同的操作。
理論上說暴露在公網上的Linux 系統(以及其他受影響的版本,下同) 在默認啟用CUPS 的情況下,攻擊者可以通過自動化程序進行掃描並收集數據,也可以通過自動化程序批量進行攻擊。
研究人員在公網上進行掃描時輕鬆獲得數十萬台設備的連接,峰值時有200K~300K 個並發設備,也就是僅從掃描數據來看公網上受影響的Linux 系統可能就超過百萬台。
目前的補救措施:
- 如果你不需要使用列印相關服務請直接在系統上刪除cups-browsed
- 更新系統上的CUPS 包
- 如果系統無法執行更新並且出於某種原因你依賴該服務,則需要阻止所有通過UDP 到631 連接埠的流量以及可能的所有DNS-SD 流量
研究人員自己的做法是從所有系統中刪除了所有的CUPS 服務、二進位檔案和函式庫,也不會再使用UNIX 系統進行列印,也刪除了zeroconf、avahi、bonjour 監聽器。
最後這裡還是要提下研究人員與開發者之間的漏洞回饋問題:
在昨天的文章中開發者已經提到關於這個/ 這些漏洞的披露並不順利,因為負責這些專案的開發者似乎並不認同相關漏洞,在最新披露的文章裡研究人員也說明了這些問題。
從9 月5 日開始研究人員透過OpenPrinting cups 儲存庫提交了安全公告,原本這應該是負責任的揭露流程的一部分,但之後揭露流程已經崩潰。
負責分類漏洞的工程師似乎對研究人員抱有極高的期望,你必須證明自己值得被傾聽(也就是必須詳細向他們說明漏洞的各種資訊),但他們幾乎不關心處理和理解你在說什麼。
在22 天的溝通中,研究人員稱對接的工程師(不止一個人) 傲慢、不屑一顧甚至存在人身攻擊,他們試圖證明這些” 漏洞“在其他項目上也存在,而且是用於其他功能而非修復。
直到三週後對接的工程師才意識到研究人員是對的,整個過程讓研究人員心力交瘁,估計也已經對目前Linux 社區這種流程或機制失望透頂。
以上出自研究人員關於該漏洞的第一部分披露,接下來可能還有第二部分和第三方部分:https://www.evilsocket.net/2024/09/26/Attacking-UNIX-systems-via-CUPS -Part-I/