【高危】- PHP 远程代码执行漏洞 (CVE-2019-11043)
■ 漏洞描述
PHP 官方发布漏洞通告,使用 Nginx + php-fpm 的服务器,在默认的配置下,存在远程代码执行漏洞。
Nginx 上 fastcgi_split_path_info 在处理带有 %0a 的请求时,会因为遇到换行符 导致 PATH_INFO 为空。
而 php-fpm 在处理 PATH_INFO 为空的情况下,存在逻辑缺陷。攻击者通过精心的构造和利用,可以导致远程代码执行。

 
■ 影响范围
Nginx + php-fpm服务器

 
■ 漏洞检测
检测方法:
1、Nginx + php-fpm 的服务器,在使用如下默认配置的情况下,都可能存在远程代码执行漏洞。
location ~ [^/].php(/|$) {
fastcgi_split_path_info ^(.+?.php)(/.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass php:9000;

 
■ 漏洞修复
在不影响正常业务的情况下,删除 Nginx 配置文件中的如下配置:
fastcgi_split_path_info ^(.+?.php)(/.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;

 
■ 漏洞详情
https://lab.wallarm.com/php-remote-code-execution-0-day-discovered-in-real-world-ctf-exercise/
https://github.com/neex/phuip-fpizdam