[漏洞预警]PHP-FPM在Nginx的特定环境下的任意代码执行漏洞

/ 默认分类 / 0 条评论 / 2722 浏览

本站的所有程序和文章,仅限用于学习和研究目的;不得用于商业或者非法用途,否则,一切后果请用户自负!!

0x00简介:

    2019年10月22日在国外上某技术大牛公开了在PHP-FPM中新修补的RCE。

0x01漏洞评判:

中危

注:因需要在特定的环境配置下才能代码执行,漏洞覆盖面有限

0x02:漏洞解析

    因为“fpm_main.c”文件的第1150行代码中由于\n(%0a)的传入导致nginx传递给php-fpm的PATH_INFO为空。

https://github.com/php/php-src/blob/master/sapi/fpm/fpm/fpm_main.c#L1150

    进而导致可以通过FCGI_PUTENV与PHP_VALUE相结合,修改当前的php-fpm进程中的php配置。在特殊构造的配置生效的情况下可以触发任意代码执行。

默认使用以下官方给出的_php-fpm示例配置_将会受到影响

PHP FastCGI Example | NGINX

0x03修复建议:

    1.修改nginx配置文件中fastcgi_split_path_info的正则表达式,不允许.php之后传入不可显字符
    2.暂停使用 nginx+php-fpm 服务
    3.删除如下配置

fastcgi\_split\_path\_info ^(.+?\\.php)(/.*)$;fastcgi\_param PATH\_INFO $fastcgi\_path_info;

本文最后编辑时间为: 2019-10-24

如本文对你有帮助,点击广告支持一下吧,创造不易。

safe6