记录日常工作关于系统运维,虚拟化云计算,数据库,网络安全等各方面问题。
近日,国家信息安全漏洞库(CNNVD)收到关于PHP-FPM远程代码执行漏洞(CNNVD-201910-1456、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;



转载请标明出处【关于PHP-FPM远程代码执行漏洞】。

《www.micoder.cc》 虚拟化云计算,系统运维,安全技术服务.

网站已经关闭评论