2019年9月14日至18举办的 Real World CTF中,国外安全研究员 Andrew Danau 在办理一道CTF题目时创造,向目标做事器 URL 发送 %0a 符号时,做事返回非常,疑似存在漏洞

2019年9月26日,PHP官方发布漏洞通知布告,个中指出:利用 Nginx + php-fpm的做事器,在部分配置下,存在远程代码实行漏洞.且该配置已被广泛利用,危害较大,影响较为广泛。

2019年10月22日,该PHP远程代码实行的漏洞利用POC被公开在github上。

php云漏洞破绽公告PHP长途代码履行破绽CVE201911043 JavaScript

Nginx与 php-fpm 做事器上存在远程代码实行漏洞,由于Nginx的fastcgi_split_path_info模块在处理带%0a的要求时,对换行符 \n 处置不当使得将 PATH_INFO 值置为空,从而导致 php-fpm 在处理 PATH_INFO 时存在漏洞,攻击者通过精心的布局和利用,可以导致远程代码实行。

该漏洞存在于php上。
Nginx在0.7.31之后版本才存在fastcgi_split_path_info这个指令。
其余经由poc验证,php5.4版本未受影响,php5.6以上版本会造成做事崩溃,php7.0以上版本可以实行远程命令实行。

2.漏洞概述

漏洞类型:远程代码实行漏洞

危险等级:高危

利用条件:nginx配置了fastcgi_split_path_info

受影响系统:PHP 5.6-7.x,Nginx>=0.7.31

3.漏洞编号

CVE-2019-11043 PHP远程代码实行漏洞

4.漏洞描述

Nginx 与 php-fpm 做事器上存在远程代码实行漏洞,由于Nginx的fastcgi_split_path_info模块在处理带 %0a 的要求时,对换行符 \n 处置不当使得将 PATH_INFO 值置为空,从而导致 php-fpm 组件在处理 PATH_INFO 时存在漏洞,攻击者通过精心的布局和利用,可以导致远程代码实行。

5.修复建议

1).补丁包修复方案:

目前官方尚未发布修复漏洞的补丁包,将于当地韶光24日进行发布,请随时关注并进行升级。

2).源码修复方案:

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

3).临时修复方案:

Nginx 配置文件中location添加如下配置:

try_files $uri =404

6.即时检测

青藤云安全在漏洞爆出的第一韶光,已经及时剖析相应并支持该漏洞的检测。

详细产品的利用方法:登录青藤主机平台,选择漏洞检测功能进行检讨。

参考链接:

https://bugs.php.net/bug.php?id=78599

https://lab.wallarm.com/php-remote-code-execution-0-day-discovered-in-real-world-ctf-exercise/

https://github.com/neex/phuip-fpizdam