一、漏洞情形
Nginx与php-fpm做事器上存在高危漏洞,由于Nginx的fastcgi_split_path_info模块在处理带 %0a 的要求时,对换行符 \n 处置不当造成PATH_INFO值为空,导致php-fpm 组件在处理 PATH_INFO 时存在漏洞,可被攻击者利用进行代码实行攻击。目前,开源社区已有漏洞PoC公开。
二、影响范围
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://bugs.php.net/bug.php?id=78599