圖片來源: 

Apache OpenOffice Wiki

安全研究人員發現Apache OpenOffice存在一個程式碼執行漏洞,可能導致用戶裝置被執行惡意程式碼。壞消息是修補程式還在測試版階段,正式版可能要等到月底。

編號CVE-2021-33035的漏洞,是由新加坡安全廠商GovTech Singapore Cyber Security集團研究人員Eugene Lim 發現,8月30日OpenOffice維護單位未在緘默期內釋出修補程式後,Lim於上周HackerOne線上Hacktivity會議上揭露。

研究人員是因古早的.DBF檔案格式一項先天缺陷,進而發現OpenOffice這項漏洞。.DBF是dBase資料庫格式,已經存在近40年,迄今仍有許多應用程式支援,包括微軟Office、LibreOffice及Apache OpenOffice。

Lim解釋,DBF檔案格式有個本質上的缺陷,它的一筆記錄的封包大小可以由標頭兩種參數之一(fieldLength 或fieldType)決定。如果軟體工程師沒注意,以其中之一配置緩衝區,又以另一個設定複製到該緩衝區的大小值,就可能造成緩衝溢位。而剛好OpenOffice的.DBF解析程式(parser)未能有效檢查,可被刻意操弄參數的.DBF檔案觸發緩衝溢位,於是能使開啟.DBF檔案的OpenOffice CalC毁損。

但是OpenOffice仍然有內建保護機制,包括位址空間組態隨機載入(Address space layout randomization,ASLR)及資料執行防止(Data Execution Prevention,DEP),要突破這些防護需要不符合DEP及ASLR的軟體元件。

最後他在OpenOffice中找到一個用於解析XML文件的libxm12元件,以此為起點展開ROP(return-oriented programming)鏈攻擊。ROP是一種攻擊手法,可在程式啟用DEP時控制程序執行流,引發堆疊緩衝區溢位,進而劫持程式控制流(control flow),以執行指令。研究人員指其設計的ROP 鏈攻擊已能突破OpenOffice的安全防護,在受害機器上執行任意指令。

圖片來源_GovTech CSG

CVE-2021-33035影響Apache OpenOffice 4.1.10以前版本。但是何以Apache OpenOffice作為開源碼專案,未被常見掃瞄工具,如GitHub的LGTM找出漏洞,研究人員猜測是因為LGTM等工具主要檢查OpenOffice中的Python和JavaScript程式碼,未檢查漏洞所在的C++程式碼所致。

圖片來源_GovTech CSG

Lim在今年5月向Apache OpenOffice維護單位通報漏洞,後者已經更新了OpenOffice原始碼,雙方預定8月30日釋出穩定版OpenOffice後公布該漏洞。9月18日Apache小組仍未發布更新,研究人員則依規劃公布漏洞細節。

Apache於9月20日向The Register指出,目前修補程式已在beta版階段,專案小組預定本月內釋出Apache OpenOffice 4.1.11。

熱門新聞

Advertisement