發現了一個qmail漏洞,該漏洞使它可以被遠程利用

Qualys安全研究人員已經證明 剝削的可能性 qmail郵件服務器中的漏洞, 自2005年(CVE-2005-1513)以來已知,但由於自 qmail聲稱創建有效的利用是不現實的 可以用來攻擊默認配置的系統。

但是看來qmail開發者 他們錯了,因為Qualys設法準備了漏洞利用程序 這駁斥了這一假設,並允許通過發送特製消息來在服務器上啟動遠程代碼執行。

該問題是由stralloc_readyplus()函數中的溢出引起的,該溢出可能在處理非常大的消息時發生。 對於該操作,需要一個虛擬內存容量大於64 GB的4位系統。

在2005年的最初漏洞分析中,丹尼爾·伯恩斯坦(Daniel Bernstein)認為,代碼中分配的數組的大小始終適合32位值的假設是基於這樣一個事實,即沒有人為每個進程提供千兆字節的內存。

在過去的15年中,服務器上的64位系統已替換了32位系統,所提供的內存量和網絡帶寬都急劇增加。

qmail隨附的軟件包已考慮到Bernstein的評論和 在啟動qmail-smtpd進程時,它們限制了可用內存 (例如,在Debian 10上,限制設置為7MB)。

但是 Qualys工程師發現這還不夠 除了qmail-smtpd之外,還可以對qmail-local進程進行遠程攻擊,該攻擊在所有經過測試的程序包中都不受限制。

作為證明,準備了一個漏洞利用原型, 它適合在默認配置下使用qmail攻擊Debian提供的軟件包。 要在攻擊期間組織遠程代碼執行, 服務器需要4 GB的可用磁盤空間和8 GB的RAM.

該漏洞允許執行任何命令 具有系統上任何用戶權限的shell,但root用戶和系統用戶除外,這些用戶在“ / home”目錄中沒有自己的子目錄

攻擊是通過發送非常大的電子郵件進行的, 其中標頭中包含多行,大小約為4GB和576MB。

在qmail-local中處理上述行時 嘗試將消息傳遞給本地用戶時發生整數溢出。 複製數據時,整數溢出會導致緩衝區溢出,並具有使用libc代碼覆蓋內存頁的能力。

另外,在qmail-local中調用qmesearch()的過程中,通過open()函數打開文件“ .qmail-extension”,這導致系統的實際啟動(“。Qmail-extension” )。 但是由於“擴展名”文件的一部分是基於收件人的地址形成的(例如,“ localuser-extension @ localdomain”),因此攻擊者可以通過指定用戶“ localuser-;”來組織命令的開始。 命令; @localdomain»作為郵件的收件人。

對代碼的分析還顯示了附加補丁程序中的兩個漏洞 檢查qmail,這是Debian軟件包的一部分。

  • 第一個漏洞(CVE-2020-3811)允許繞過電子郵件地址的驗證,第二個漏洞(CVE-2020-3812)導致本地信息洩漏。
  • 第二個漏洞可用於通過直接調用本地驅動程序來驗證系統上文件和目錄的存在,包括僅可用於root用戶的文件和目錄(qmail-verify以root特權開頭)。

已為此軟件包準備了一組補丁程序,通過在alloc()函數代碼中增加硬盤限制以及qmail中的新問題,消除了2005年的舊漏洞。

此外,還單獨準備了qmail修補程序的更新版本。 notqmail版本的開發人員準備了補丁程序以阻止舊問題,並且還開始致力於消除代碼中所有可能的整數溢出。

來源: https://www.openwall.com/


發表您的評論

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

*

*

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