最近有关于台湾大神爆出的PHP的GD库漏洞,该漏洞可通过上传构造后的GIF图片,可直接导致CPU资源耗尽,直至宕机。
该漏洞是由于GD图形库中的gd_git_in.c具有整数签名错误,通过特殊构造的GIF文件使程序在调用imagecreatefromgif或imagecreatefromstring的PHP函数时导致无限循环。
该漏洞影响范围较广,漏洞版本:
PHP 5< PHP 5.6.33
PHP 7.0<PHP 7.0.27
PHP 7.1<PHP 7.1.13
PHP 7.2<PHP 7.2.1
目前PHP官方(php.net)已经发布了更新版本,下面说一下更新到最新版本的几个方法。
以下只通过CentOS系统描述:
首先确认之前的PHP是通过rpm包安装的,还是通过编译安装的,若是通过rpm包安装的,需要确认是通过哪个源安装的,确认方法:
rpm -qa |grep php
如果什么都没有出现,那就是编译安装的,如果出现php及扩展包,则是通过rpm包安装的,那么升级就分两种方式,编译安装的,需要从官网下载最新小版本重新你编译,rpm包安装的,可以直接通过yum进行升级。
1
remi 源
remi源地址:http://rpms.famillecollet.com/
首先选择合适的版本,安装remi源,若已安装,请跳过
CentOS6.x:
代码语言:javascript复制rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
CentOS7.x:
代码语言:javascript复制rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
安装后直接通过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:
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
CentOS/RHEL 6.x:
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm
安装完成后,直接通过yum命令更新php,因为webtatic是将php几个版本最新包放在测试源中,所以更新时要加参数--enablerepo=webtatic-testing
根据服务器目前php版本包进行更新,更新命令如下:
代码语言:javascript复制yum update <package> --enablerepo=webtatic-testing
3
编译安装
PHP官网地址:php.net
从PHP官网下载你需要的大版本的最新小版本源码包,我这里是php7.1.4,需要更新到php7.1.13。
查看原版本的编译参数:php -i |grep configure
复制编译参数,解压之前下载的最新源码包,用之前的编译参数重新编译php,这里注意修改prefix参数的值,不然覆盖掉原来的php了,还需要检查一下是否有之后添加的扩展,也需要重新添加。
完成后,通过php -m参数对比两个版本的php的扩展,是否一致,若一致,则可以将php迁移到最新版本的php了。
欢迎分享和关注,运维实谈,不定期分享纯干货!