• 我的位置:
  • 首頁(yè)
  • -
  • 漏洞預(yù)警
  • -
  • 其他
  • -
  • 【漏洞預(yù)警】PHP遠(yuǎn)程代碼執(zhí)行漏洞(CVE-2019-11043)
    • CNNVD編號(hào):未知
    • 危害等級(jí): 高危 
    • CVE編號(hào):CVE-2019-11043
    • 漏洞類型: 代碼執(zhí)行
    • 威脅類型:遠(yuǎn)程
    • 廠       商:未知
    • 漏洞來(lái)源:深信服
    • 發(fā)布時(shí)間:2020-09-11
    • 更新時(shí)間:2021-01-14

    漏洞簡(jiǎn)介

    該漏洞是PHP-FPM中的fpm_main.c文件的env_path_info下溢導(dǎo)致,在sapi/fpm/fpm/fpm_main.c文件中的第1140行包含pointer arithmetics,這些pointer arithmetics假定env_path_info的前綴等于php腳本的路徑。但是,代碼不會(huì)檢查這些假設(shè)是否被滿足,缺少檢查會(huì)導(dǎo)致”path_info”變量中的指針無(wú)效。


    這樣的條件可以在標(biāo)準(zhǔn)的Nginx配置中實(shí)現(xiàn)。如果有這樣的Nginx配置:

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

    攻擊者可以使用換行符(編碼格式為%0a)來(lái)破壞`fastcgi_split_path_info`指令中的regexp。regexp損壞將導(dǎo)致空PATH_INFO,從而觸發(fā)該錯(cuò)誤。


    這個(gè)錯(cuò)誤會(huì)造成代碼執(zhí)行漏洞。在后面的代碼中,path_info[0]的值設(shè)置為0,然后再調(diào)用FCGI_PUTENV。攻擊者可以使用精心選擇的URL路徑長(zhǎng)度和查詢字符串,使path_info精確地指向_fcgi_data_seg結(jié)構(gòu)的第一個(gè)字節(jié)。然后將0放入其中則‘char* pos’字段向后移動(dòng),然后FCGI_PUTENV使用腳本路徑覆蓋一些數(shù)據(jù)(包括其他快速cgi變量)。使用這種技術(shù),攻擊者可以創(chuàng)建一個(gè)偽PHP_VALUE fcgi變量,然后使用一系列精心選擇的配置值來(lái)執(zhí)行代碼。

    漏洞公示

    PHP-FPM(FastCGI流程管理器)是另一種PHP FastCGI實(shí)現(xiàn),具有一些其他功能,可用于各種規(guī)模的站點(diǎn),尤其是繁忙的站點(diǎn)。


    對(duì)于PHP 5.3.3之前的php來(lái)說(shuō),PHP-FPM是一個(gè)補(bǔ)丁包,旨在將FastCGI進(jìn)程管理整合進(jìn)PHP包中。如果你使用的是PHP 5.3.3之前的PHP的話,就必須將它patch到你的PHP源代碼中,在編譯安裝PHP后才可以使用。而PHP 5.3.3已經(jīng)集成php-fpm了,不再是第三方的包了。PHP-FPM提供了更好的PHP進(jìn)程管理方式,可以有效控制內(nèi)存和進(jìn)程、可以平滑重載PHP配置。

    受影響實(shí)體

    影響產(chǎn)品

    在2019-09-26更新之前下載的PHP-FPM,且必須為Nginx + php-fpm 的服務(wù)器使用如下配置,會(huì)受到影響。

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

    補(bǔ)丁

    深信服下一代防火墻】可防御此漏洞, 建議部署深信服下一代防火墻的用戶開(kāi)啟安全防御模塊,可輕松抵御此高危風(fēng)險(xiǎn)。


    深信服云盾】已第一時(shí)間從云端自動(dòng)更新防護(hù)規(guī)則,云盾用戶無(wú)需操作,即可輕松、快速防御此高危風(fēng)險(xiǎn)。

    1. 如果業(yè)務(wù)不需要以下配置,建議用戶刪除:

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


    2. 使用github中的最新的PHP版本,下載地址:

    https://github.com/php/php-src