PHP GD庫最新漏洞,可令CPU使用率瞬間飆升至100%!

前幾天,PHP出現一個代號為PHP CVE-2018-5711的漏洞,只要是使用GD庫處理圖像的站點基本上會中招。想到公司內部有部分業務正是使用PHP開發的,故而對這個漏洞稍微研究了一下。

漏洞執行過程

PHP GD庫最新漏洞,可令CPU使用率瞬間飆升至100%!

也就是說,使用imagecreatefromgif函數時可能觸發該漏洞,導致CPU使用率飆升至100%。目前,該漏洞影響了幾乎所有的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中代碼:

PHP GD庫最新漏洞,可令CPU使用率瞬間飆升至100%!

PHP GD庫最新漏洞,可令CPU使用率瞬間飆升至100%!

GetCode會調用GetDataBlock函數讀取GIF圖中的數據。

PHP GD庫最新漏洞,可令CPU使用率瞬間飆升至100%!

細心的人也許已經發現端倪了,其實是變量類型轉換引起的。

當GetDataBlock返回值為-1時,第二段代碼中的count值無法賦上該值,所有bug就出現了。

最後,提醒一下廣大開發者和運維兄弟,及時更新擴展,防止出現服務器掛掉的情況!


分享到:


相關文章: