閱讀軟體Foxit Reader多項錯誤恐觸發Use-After-Free 、Type confusion
- 發布單位:TWCERT/CC
- 更新日期:2019-04-02
- 點閱次數:588
CVE編號
內文
●概述:
福昕軟體公司研發數款PDF閱讀工具,其特色在體積小、速度快,經測試後,公開桌機Windows平台之PhantomPDF、Reader版本漏洞狀況,不當重複使用已釋放buffer之物件指標將導致當機;而開啟PDF時解析轉換JPG格式及執行GetAssociatedPageIndex()函數時,皆觸發越界存取記憶體;呼叫addAdLayer()及函數解析ColorSpace元件有機會衍生類型混淆;匯出資料功能之JavaScript未過濾檔案型態,導致任意檔案寫入事件;而濫用大量緩衝區配置將耗損資源而crash,上述漏洞伴隨特定函數及參數運用時發生,故使用Foxit軟體,出現remote code execution機率頗高,亦有機會洩漏系統資訊,Foxit就相關版本軟體進行升級並公告。
●編註:
(1)Use-After-Free
在數種條件下,操作過程觸發程式本身邏輯錯誤,對於已經關閉或釋放緩衝區之物件、指標、檔案,不當重複使用,可能導致當機。
(2)記憶體邊界管理不當
(2-1)開啟PDF檔案時,若包含JPG圖形格式,則呼叫特定函數,以解析轉換JPG,然而過程中違背指標存取規則,攻擊者能藉此觸發Out-of-Bounds Read/Write事件,將造成RCE或資訊外洩。
(2-2)當Foxit Reader執行GetAssociatedPageIndex()函數時,因程序控制具瑕疵,發生越界讀取記憶體事件,衍生訊息外洩或任意代碼執行。
(3)type confusion
類型混淆在兩種情況下遭觸發,程式呼叫addAdLayer()函數時,函數內特定物件已被置換;另外在解析PDF檔內ColorSpace元件時,ICCBased被替換成Pattern色彩空間,這兩類錯誤皆能導致Remote Code Execution。
(4)破壞資料完整性
Foxit Reader匯出各式資料時,透過exportAsFDF 或exportData 任一JavaScript執行,然囿於未檢查檔案型態,造成資料寫入,破壞其完整性。
(5) crash
程式碼內某行撰寫為var test = new ArrayBuffer(0xfffffffe),讓JavaScript運作時配置大量緩衝區,遠端用戶可探勘此特性,造成資源耗損而當機。
影響產品
解決辦法
(2)參考https://www.foxitsoftware.com/downloads/#Foxit-Reader、https://www.foxitsoftware.com/downloads/#Foxit-PhantomPDF-Business ,下載PhantomPDF 9.2或Reader 9.2。