按 Enter 到主內容區
:::

TWCERT-電子報

:::

閱讀軟體Foxit Reader多項錯誤恐觸發Use-After-Free 、Type confusion

發布日期:
字型大小:
  • 發布單位:TWCERT/CC
  • 更新日期:2019-04-02
  • 點閱次數:588
閱讀軟體Foxit Reader多項錯誤恐觸發Use-After-Free 、Type confusion

CVE編號

CVE-2018-3924,CVE-2018-3939

內文

●概述:
福昕軟體公司研發數款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運作時配置大量緩衝區,遠端用戶可探勘此特性,造成資源耗損而當機。

影響產品

PhantomPDF 9.1.0.5096以前版本 /Reader 9.1.0.5096以前版本

解決辦法

(1)從軟體Help頁籤操作「檢查更新」,取得PhantomPDF 9.2、Reader 9.2。
(2)參考https://www.foxitsoftware.com/downloads/#Foxit-Reader、https://www.foxitsoftware.com/downloads/#Foxit-PhantomPDF-Business ,下載PhantomPDF 9.2或Reader 9.2。
回頁首