中新網安安全研究院ImageMagick堆棧溢出0day漏洞 (CVE-2018-6876)

2018年02月07日,中新網安安全研究院發現ImageMagick堆棧溢出0day漏洞(CVE-2018-6876)。中新網安安全研究院一直與ImageMagick保持積極溝通,積極推進該0day漏洞的修復,并擇時披露漏洞相關信息。

121.png

ImageMagick是一個免費的創建、編輯、合成圖片的軟件。它可以讀取、轉換、寫入多種格式的圖片。圖片切割、顏色替換、各種效果的應用,圖片的旋轉、組合,文本,直線,多邊形,橢圓,曲線,附加到圖片伸展旋轉。ImageMagick是免費軟件:全部源碼開放,可以自由使用,復制,修改,發布,它遵守GPL許可協議,可以運行于大多數的操作系統,ImageMagick的大多數功能的使用都來源于命令行工具。


PHP imagick、Ruby rmagick和paperclip以及NodeJS imagemagick等多個圖片處理插件都依賴ImageMagick運行,當攻擊者構造poc圖片上傳可導致使用ImageMagick組件的網站宕機。


ImageMagick是一個使用非常廣的組件,包括騰訊、網易、趕集等各大互聯網公司等大量廠商都在處理圖片的時候調用這個程序進行處理,而且很多開源應用也在核心代碼中包含了ImageMagick選項。采用了ImageMagick組件,且允許用戶上傳圖像的網站,以及例如Wordpress、Drupal、Discuz等開源程序,都會受到DOS威脅。


 01  漏洞掃描  


漏洞函數在ImageMagick 的附加庫 libfpx fpx/f_fpxvw.cpp:1199 調用


1519890425191978.png


漏洞在ole/oleprop.cpp:260行的重載函數,讀取指針錯誤導致溢出,如下圖,CY的大小是32個字節,FILETIME是16個字節,在給val賦值的時候多引用了16個字節導致異常,造成組件崩潰。


1519890458739089.png



ASAN OUTPUT

1519890495911288.png

 02 漏洞影響 

ImageMagick 7.0.7-22(最新版)


 03 修復建議 

由于目前官方還沒有更新補丁,可重新編譯暫時禁用libfpx庫


 04 漏洞poc 

https://github.com/ImageMagick/ImageMagick/issues/973


 05 時間線    

2018年02月07日  提交漏洞

2018年02月09日  ImageMagick 官方確認漏洞

2018年02月10日  CVE確認編號:CVE-2018-6876

2018年02月25日 中新網安發布漏洞預警


 06 參考鏈接 

1.//cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-6876

2.https://github.com/ImageMagick/ImageMagick/issues/973