Nginx+PHP-FPM远程命令执行_CVE-2019-11043


漏洞描述

此次漏洞主要由于 PHP-FPM 中 sapi/ fpm/ fpm/ fpm_main.c 文件内的 env_path_info 下溢导致,攻击者可以使用换行符 %0a 破坏 Nginx 中 fastcgi_split_path_info 对应的正则表达式,导致传递给 PHP-FPM 的 PATH_INFO 值为空,从而触发该漏洞,通过发送特制的URL请求,在一些特殊的配置情况下会导致任意代码执行。

影响范围

使用 Nginx + PHP-FPM 的服务器,且在 nginx 下进行了如下配置,都可能存在远程代码执行漏洞。

location ~ [^/]\.php(/|$) {
        fastcgi_split_path_info^(.+?\.php)(/.*)$;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_pass php:9000;
        ...
    }

漏洞复现

1.正常访问靶机环境

2.执行exp后访问

漏洞修复

1.更新官网补丁: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
2.检查nginx上文的配置。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM