收藏 [登录/注册] 欢迎
榕基门户网及子站
联系我们
  • 福建榕基软件股份有限公司
  • 电话:0591-87860988
  • 传真:0591-87869595
  • 地址:福建省福州市鼓楼区
  •    软件大道89号
  •    A区15座
  • 邮编:350003
您的当前位置:首页 > 技术支持 > 漏洞公告

PHP-FPM远程代码执行漏洞

关于PHP-FPM远程代码执行漏洞(CVE-2019-11043),攻击者成功利用漏洞,可远程执行代码。当Nginx + php-fpm 的服务器在特定配置下,都会受该漏洞影响。目前,PHP官方已经发布新版本修复了该漏洞,建议用户及时确认是否受到漏洞影响,尽快采取修补措施。

一、漏洞介绍

PHP是PHP Group和开放源代码社区共同维护的一种开源的通用计算机脚本语言。该语言主要用于Web开发,支持多种数据库及操作系统。PHP-FPM是PHP集成的一个组件,用于FastCGI进程管理,Nginx 是一个HTTP和反向代理web服务器。

该漏洞需要在PHP-FPM+Nginx组合,并采用一定配置的情况下才会被触发,但这个配置并非Nginx默认配置。当fastcgi_split_path_info字段被配置为 ^(.+?\.php)(/.*)$;时,攻击者可以通过精心构造的payload,触发远程代码执行漏洞,由于该配置已被广泛使用,危害较大,请用户及时采取修补措施。

二、危害影响

当PHP-FPM+Nginx的服务器有如下配置的时候,都会受漏洞影响,配置如下:

location ~ [^/]\.php(/|$) {

       fastcgi_split_path_info ^(.+?\.php)(/.*)$;

       fastcgi_param PATH_INFO       $fastcgi_path_info;

       fastcgi_pass   php:9000;

       ...

   }

}

该漏洞PoC已在2019年10月22日公布,PHP与Nginx组合使用的情况较为广泛,攻击者可利用该漏洞远程执行任意代码,所以危害较大。

三、修复建议

目前,PHP官方已经发布新版本修复了该漏洞,建议用户及时确认是否受到漏洞影响,尽快采取修补措施。更新如下:      

https://bugs.php.net/patch-display.php?bug_id=78599&patch=0001-Fix-bug-78599-env_path_info-underflow-can-lead-to-RC.patch&revision=latest

修改配置解决措施如下:

(1)在nginx 配置文件中加入try_files $uri=404

(2)结合业务需求,删除如下配置

fastcgi_split_path_info ^(.+?\.php)(/.*)$;

fastcgi_param PATH_INFO       $fastcgi_path_info;