當前位置:
首頁 > 新聞 > CVE-2018-5711:一張GIF圖片就能讓伺服器宕機的PHP漏洞

CVE-2018-5711:一張GIF圖片就能讓伺服器宕機的PHP漏洞


最近,台灣Web漏洞挖掘大牛Orange Tsai在對一些Web開發框架和程序實現模塊進行安全審核的過程中,發現了一些有意思的漏洞。就比如說,這個PHP的CVE-2018-5711,它能用一張GIF圖片就可導致伺服器發生崩潰直至宕機,在現實中非常容易利用。在此,Orange Tsai簡單地介紹了這個漏洞。


漏洞影響的PHP版本


包含以下PHP系列和其它所有PHP版本


PHP 5 < 5.6.33


PHP 7.0 < 7.0.27


PHP 7.1 < 7.1.13


PHP 7.2 < 7.2.1

漏洞細節


漏洞存在於文件ext/gd/libgd/gd_gif_in.c中,其中在LWZReadByte_函數中存在一個循環(while-loop):



GetCode函數僅只是一個包裝類,GetCode_才是真正的執行體:


GetCode_ 會調用GetDataBlock來讀取GIF圖片中的數據:



以上就是涉及到的漏洞代碼,你有發現一些端倪嗎?


該漏洞依賴於從整形(int)到無符號字元(unsigned char)的類型轉換。就像上述的:如果GetDataBlock_返回-1,則第400行中的scd->done將會被設置為True,並停止while循環。但是其定義的count是無符號字元,它總是從0到255的正數,所以這種循環停止動作是不會被觸發執行的。

因此,最終結果就是,一張GIF圖片就可以實現無限循環,導致伺服器資源耗盡,直到崩潰宕機。


PoC



由於現實網路中,很多伺服器都會用GD圖形的擴展庫,對用戶上傳的圖片作重新尺寸調整處理,所以該漏洞具有很強的現實危害。


後記


Orange Tsai後續會公開更多0-day和與該漏洞相關的內容。


漏洞參考:



https://bugs.php.net/bug.php?id=75571


http://php.net/ChangeLog-7.php


http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5711


*參考來源:orange,FreeBuf小編clouds編譯,轉載請註明來自FreeBuf.COM


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 FreeBuf 的精彩文章:

15歲男孩假扮成CIA官員黑掉高度敏感的信息
經驗分享 | 如何做好基礎安全設備運維

TAG:FreeBuf |