在2019年9月26日,PHP发布了一则漏洞公告,此次漏洞公告中披露了一个远程代码执行漏洞,该漏洞是因PHP-FPM中的fpm_main.c文件的env_path_info下溢而导致的。该漏洞存在于PHP-FPM + Nginx组合使用并采用一定配置的情况下。该漏洞PoC已在2019年10月22日公布,PHP与Nginx组合使用的情况较为广泛,者可利用该漏洞远程执行任意代码,所以危害性较大。
PHP-FPM(FastCGI流程管理器)是另一种PHP FastCGI实现,具有一些其他功能,可用于各种规模的站点,尤其是繁忙的站点。
对于PHP 5.3.3之前的php来说,PHP-FPM是一个补丁包,旨在将FastCGI进程管理整合进PHP包中。如果你使用的是PHP 5.3.3之前的PHP的话,就必须将它patch到你的PHP源代码中,在编译安装PHP后才可以使用。而PHP 5.3.3已经集成php-fpm了,不再是第三方的包了。PHP-FPM提供了更好的PHP进程管理方式,可以有效控制内存和进程、可以平滑重载PHP配置。
这个错误会导致代码执行漏洞。在后面的代码中,path_info[0]的值设置为0,然后再调用FCGI_PUTENV。者可以使用精心选择的URL径长度和查询字符串,使path_info精确地指向_fcgi_data_seg结构的第一个字节。然后将0放入其中则‘char* pos’字段向后移动,然后FCGI_PUTENV使用脚本径覆盖一些数据(包括其他快速cgi变量)。使用这种技术,者可以创建一个伪PHP_VALUE fcgi变量,然后使用一系列精心选择的配置值来执行代码。
服下一代防火墙可防御此漏洞, 部署服下一代防火墙的用户安全防御模块,可轻松抵御此高危风险。
服云盾已第一时间从云端自动更新防护规则,云盾用户无需操作,即可轻松、快速防御此高危风险。a型血人的性格