當前位置:
首頁 > 最新 > 如何修復PHP的GD庫漏洞

如何修復PHP的GD庫漏洞

最近有關於台灣大神爆出的PHP的GD庫漏洞,該漏洞可通過上傳構造後的GIF圖片,可直接導致CPU資源耗盡,直至宕機。

該漏洞是由於GD圖形庫中的gd_git_in.c具有整數簽名錯誤,通過特殊構造的GIF文件使程序在調用imagecreatefromgif或imagecreatefromstring的PHP函數時導致無限循環。

該漏洞影響範圍較廣,漏洞版本:

PHP 5< PHP 5.6.33

PHP 7.0

PHP 7.1

PHP 7.2

目前PHP官方(php.net)已經發布了更新版本,下面說一下更新到最新版本的幾個方法。

以下只通過CentOS系統描述:

首先確認之前的PHP是通過rpm包安裝的,還是通過編譯安裝的,若是通過rpm包安裝的,需要確認是通過哪個源安裝的,確認方法:

rpm -qa grep php

如果什麼都沒有出現,那就是編譯安裝的,如果出現php及擴展包,則是通過rpm包安裝的,那麼升級就分兩種方式,編譯安裝的,需要從官網下載最新小版本重新你編譯,rpm包安裝的,可以直接通過yum進行升級。

1

remi 源

首先選擇合適的版本,安裝remi源,若已安裝,請跳過

CentOS6.x:

CentOS7.x:

安裝後直接通過yum命令更新php

yum update php

更新完成後,若是apache,且是mod模式,則重啟apache,若是fpm模式,則重啟php-fpm,若是nginx,則從其nginx,查看PHP版本

2

webtatic 源

webtatic源地址:https://webtatic.com

同樣首先選擇合適的版本,安裝webtatic源,若已安裝,請跳過

CentOS/RHEL 7.x:

CentOS/RHEL 6.x:

安裝完成後,直接通過yum命令更新php,因為webtatic是將php幾個版本最新包放在測試源中,所以更新時要加參數--enablerepo=webtatic-testing

根據伺服器目前php版本包進行更新,更新命令如下:

3

編譯安裝

PHP官網地址:php.net

從PHP官網下載你需要的大版本的最新小版本源碼包,我這裡是php7.1.4,需要更新到php7.1.13。

查看原版本的編譯參數:php -i grep configure

複製編譯參數,解壓之前下載的最新源碼包,用之前的編譯參數重新編譯php,這裡注意修改prefix參數的值,不然覆蓋掉原來的php了,還需要檢查一下是否有之後添加的擴展,也需要重新添加。

完成後,通過php -m參數對比兩個版本的php的擴展,是否一致,若一致,則可以將php遷移到最新版本的php了。

GIF

歡迎分享和關注,運維實談,不定期分享純乾貨!


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

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


請您繼續閱讀更多來自 運維實談 的精彩文章:

TAG:運維實談 |