【漏洞预警】PHP-FPM远程代码执行漏洞(CVE-2019-11043)

by LauCyun Oct 24 09:43:46 3,761 views

2019年10月22日,大牛@ahack_ru在Twitter上公开了一个PHP-FPM中新修补漏洞的RCE。

0x1 漏洞详情

Nginx上fastcgi_split_path_info在处理带有%0a的请求时,会因为遇到换行符\n导致PATH_INFO为空。而php-fpm在处理PATH_INFO为空的情况下,存在逻辑缺陷。攻击者通过精心的构造和利用,可以导致远程代码执行。

1 漏洞等级

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

2 影响范围

PHP 5.6-7.x

3 漏洞类型

代码执行

4 漏洞编号

CVE-2019-11043

5 漏洞复现

经分析确认,漏洞确实存在,PHP 5.6以上版本存在Crash, PHP 7.X版本存在RCE。

使用POC发送数据包,如下图所示:

可见,这里已经执行成功。

访问http://localhost:8080/index.php?a=id即可查看到命令已成功执行,如下图所示:

0x2 修复方案

请结合实际业务场景,在不影响正常业务的情况下,在 Nginx 的配置文件中删除如下配置:

fastcgi_split_path_info ^(.+?\.php)(/.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;

0x3 时间轴

  • 2019/9/14    安全研究员Andrew Danau发现该漏洞。
  • 2019/9/26    PHP官方发布漏洞通告。
  • 2019/10/22   POC在github公开。

0x4 参考

Tags