9月26日,平安研讨员AndrewDanau向PHP提交一枚长途代码履行缝隙,行使某些特定设置的Nginx+PHP-FPM的效劳器存在缝隙,可理睬攻打者长途履行代码。该缝隙EXP于10月22日公布,奇安信平安监测与相应中间第一光阴复现了这个缝隙,鉴于该缝隙迫害较大,意见受此缝隙影响的客户当即修理。
奇安信平安监测与相应中间缝隙形色在9月14日至16日举行的RealWorldCTF中,Wallarm平安研讨员AndrewDanau在解题时无意觉察向Nginx+PHP-FPM的效劳器URL发送%0a时,效劳器返回反常。在其停止深入研讨以后,觉察可胜利操纵该缝隙停止长途代码履行,并于9月26号提交了该缝隙。
该缝隙需求在nginx.conf中停止特定设置才力触发。详细设置如下:
location~[^/]\.php(/
$){
...
fastcgi_split_path_info^(.+?\.php)(/.*)$;
fastcgi_paramPATH_INFO$fastcgi_path_info;
fastcgi_passphp:;
...
}
攻打者能够行使换行符(%0a)来毁坏`fastcgi_split_path_info`指令中的Regexp。Regexp被毁坏致使PATH_INFO为空,进而触发该缝隙。
危机品级奇安信平安监测与相应中间危机评级为:高危
预警品级:蓝色预警(个别事情)
影响规模在Nginx+PHP-FPM处境下,当起用了上述Nginx设置后,如下PHP版本受本次缝隙影响,别的,PHP5.6版本也受此缝隙影响,但暂时只可Crash,不行以长途代码履行:
PHP7.0版本PHP7.1版本PHP7.2版本PHP7.3版本治理意见PHP已于10月12号宣布该缝隙补钉,请参考如下链接装配补钉: