OpenOffice 中允許在開啟檔案時執行程式碼的漏洞

Apache OpenOffice 辦公室套件中已發現一個漏洞 (CVE-2021-33035),該漏洞允許在開啟專門設計的 DBF 格式檔案時執行程式碼。 發現該問題的研究人員警告說,要為 Windows 平台創建一個有效的漏洞利用程式。 此漏洞修復目前僅以專案儲存庫中的修補程式形式提供,該修補程式已包含在 OpenOffice 4.1.11 的測試版本中。 穩定分支還沒更新。

該問題是由於 OpenOffice 依賴 DBF 檔案頭中的 fieldLength 和 fieldType 值來分配內存,而不檢查字段中的實際資料類型是否匹配而引起的。 要進行攻擊,可以在fieldType值中指定INTEGER類型,但是放置較大的資料並指定與INTEGER類型的資料大小不對應的fieldLength值,這會導致資料出現尾部從被寫入的欄位超出分配的緩衝區。 由於受控緩衝區溢出,研究人員能夠重新定義函數的返回指針,並使用面向返回的編程技術(ROP - 返回導向編程)實現代碼的執行。

使用 ROP 技術時,攻擊者不會嘗試將其程式碼放入記憶體中,而是對載入的庫中已有的機器指令進行操作,以控制返回指令結束(通常,這些是函式庫函數的結尾) 。 此漏洞利用的工作歸結為建立類似區塊(「小工具」)的呼叫鏈以獲得所需的功能。 OpenOffice 漏洞利用中使用的小工具是來自OpenOffice 中使用的libxml2 庫的程式碼,與OpenOffice 本身不同,該程式庫是在沒有DEP(資料執行保護)和ASLR(位址空間佈局隨機化)保護機制的情況下編譯的。

OpenOffice 開發人員於 4 月 30 日收到有關該問題的通知,隨後計劃於 18 月 4.1.11 日公開披露該漏洞。 由於穩定分支的更新未能在預定日期完成,研究人員將詳細資訊的揭露推遲到 2021 月 38646 日,但 OpenOffice 開發人員未能在該日期之前創建版本 XNUMX。 值得注意的是,在同一研究中,Microsoft Office Access 中的 DBF 格式支援程式碼中發現了類似的漏洞(CVE-XNUMX-XNUMX),詳細資訊將在稍後揭露。 LibreOffice 中沒有發現問題。

來源: opennet.ru

添加評論