信息來源:安全內(nèi)參
Apache OpenOffice 中存在一個(gè)緩沖區(qū)溢出漏洞,可被用于在使用惡意文檔的目標(biāo)機(jī)器上執(zhí)行任意代碼。
該漏洞的編號(hào)是CVE-2021-33035,由安全研究員 Eugene Lim 發(fā)現(xiàn),影響4.1.10及之前版本,補(bǔ)丁僅部署在 4.1.11 測(cè)試版,意味著多數(shù)版本可能易受攻擊。
Lim 表示自己在基西 .dbf 文件格式的軟件中查找潛在的安全漏洞時(shí)發(fā)現(xiàn)了該緩沖區(qū)溢出漏洞。他通過dumb fuzzing模板在目標(biāo)機(jī)器上觸發(fā)了該漏洞并在多個(gè)DBF處理器上進(jìn)行了測(cè)試,進(jìn)而發(fā)現(xiàn)了兩個(gè)漏洞:Scalabium dBase Viewer 中的 CVE-2021-35297和下載量已達(dá)到數(shù)百萬次的開源辦公套件 Apache OpenOffice 中的 CVE-2021-33035。
該緩沖區(qū)溢出漏洞存在的原因是DBF文件的緩沖區(qū)大小或者由 fieldLength 確定或者由標(biāo)頭中的 fieldType 確定。因此,如果將超大的緩沖區(qū)復(fù)制到短整型緩沖區(qū)時(shí)就會(huì)觸發(fā)溢出。
Lim 通過 dumb fuzzing 模板觸發(fā)了崩潰,但由于 OpenOffice 具有地址空間布局隨機(jī)化 (ASLR) 和數(shù)據(jù)執(zhí)行預(yù)防 (DEP) 等防護(hù)措施,因此實(shí)現(xiàn)返回面響編程 (ROP) 鏈還需要繞過這些防護(hù)措施。
進(jìn)一步分析發(fā)現(xiàn),OpenOffice 中的 libxml2 模塊并未通過 DEP 或 ASLR 防護(hù)措施編譯,最終 Lim 通過特殊構(gòu)造的 .dbf 文件即可利用該漏洞。
盡管 OpenOffice 是一款開源應(yīng)用程序,意味著它可能已被很多款代碼分析工具掃描過,但該漏洞未被發(fā)現(xiàn)是因?yàn)閽呙韫ぞ卟檎业氖翘准械?Python 和 JavaScript 代碼而不是漏洞存在的 C++ 代碼。Lim 指出,“這說明完整性檢查自動(dòng)化靜態(tài)分析工具的重要性;如果工具不了解已有的代碼,那么就無法找到這些漏洞?!?
Lim 在5月份將漏洞告知 Apache OpenOffice,后者更新了其源代碼,但并未在穩(wěn)定發(fā)布版中打補(bǔ)丁。Lim 之前同意在8月30日發(fā)布詳情的提議,后在9月18日公開。
Scalabium dBase 查看器中的漏洞在6月份修復(fù),即收到漏洞報(bào)告的兩天后修復(fù)。
原文鏈接
https://www.securityweek.com/openoffice-vulnerability-exposes-users-code-execution-attacks