PHP远程执行漏洞 CVE-2019-11043
在低于7.1.33的7.1版本, 低于7.2.24的7.2版本, 低于7.3.11的7.3版本,并启用了 PHP-FPM 的 NGINX 服务器上存在被利用远程执行代码的可能。
漏洞利用的条件
1、Nginx + php_fpm,且配置 location ~ [^/].php(/|$) 会将请求转发到php-fpm。
2、Nginx配置 fastcgi_split_path_info 并且以^开始以$,只有在这种条件下才可以通过换行符来打断正则表达式判断。
fastcgi_split_path_info ^(.+?.php)(/.*)$;
3、fastcgi_param中PATH_INFO会被定义通过 fastcgi_param PATH_INFO $fastcgi_path_info; ,当然这个变量会在fastcgi_params默认定义。
4、在nginx层面没有定义对文件的检查比如 try_files $uri =404,如果nginx层面做了文件检查,则请求不会被转发给php-fpm。
修复方法
临时修复
修改nginx相应的配置,并在php相关的配置中加入 try_files $uri =404 ,在这种情况下,nginx会去检查文件是否存在,当文件不存在时,请求都不会被传递到php-fpm。
正式修复
- 将PHP 7.1.X更新至7.1.33及以上版本
- 将PHP 7.2.X更新至7.2.24及以上版本
- 将PHP 7.3.X更新至7.3.11及以上版本
漏洞原文地址
https://bugs.php.net/bug.php?id=78599
原文链接地址:https://blog.exsvc.cn/article/php-cve-2019-11043.html
转载请注明:转载自 易科博客 ,谢谢!