Zehfbûna di php-fpm de ku destûrê dide darvekirina kodê ji dûr ve li ser serverê

Berdeste berdanên rastker ên PHP 7.3.11, 7.1.33 û 7.2.24, ku tê de tasfiye kirin rexneyan lawazbûn (CVE-2019-11043) di pêveka PHP-FPM (Rêveberê Pêvajoya FastCGI) de, ku dihêle hûn koda xwe ji dûr ve li ser pergalê bicîh bikin. Ji bo êrîşkirina serverên ku PHP-FPM-ê bi Nginx-ê re bi kar tînin da ku nivîsarên PHP-ê bixebitînin, ew jixwe gelemperî heye. karker îstîsmar kirin.

Êrîş di veavakirinên nginx de mimkun e ku tê de şandina PHP-FPM bi veqetandina beşên URL-ê bi karanîna "fastcgi_split_path_info" û pênasekirina guhêrbara jîngehê PATH_INFO pêk tê, lê bêyî ku pêşî hebûna pelê bi karanîna "try_files $fastcgi_script_name" were kontrol kirin. dîrektîfa an "eger (!-f $) document_root$fastcgi_script_name)". Pirsgirêk jî ev e xuya dike di mîhengên ku ji bo platforma NextCloud têne pêşkêş kirin. Mînakî, veavakirinên bi strukturên mîna:

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

Hûn dikarin li ser van rûpelan çareseriya pirsgirêkê di kîtên belavkirinê de bişopînin: Debian, RHEL, Ubuntu, SUSE / openSUSE, FreeBSD, Taqa, Fedora. Wekî çareseriyek, hûn dikarin ji bo hebûna pelê PHP-ê ya daxwazkirî piştî rêzika "fastcgi_split_path_info" kontrolek lê zêde bikin:

try_files $fastcgi_script_name =404;

Pirsgirêk ji ber xeletiyek dema ku nîşangiran di pelê de manîpule dike çêdibe sapi/fpm/fpm/fpm_main.c. Dema ku nîşanek destnîşan dike, tê texmîn kirin ku nirxa guhêrbara jîngehê PATH_INFO divê pêşgirek hebe ku bi rêça skrîpta PHP-ê re li hev bike.
Ger dîrektîfa fastcgi_split_path_info dabeşkirina rêça skrîptê bi karanîna birêkûpêkek birêkûpêk-hesas a nû diyar dike (mînak, gelek mînak pêşniyar dikin ku "^(.+?\.php)(/.*)$" bikar bînin), wê hingê êrîşkar dikare piştrast bike ku nirxa vala li guhêrbara jîngehê PATH_INFO hatiye nivîsandin. Di vê rewşê de, bêtir bi darvekirinê çîbecî bû nivîsandina path_info[0] heta sifir û gazî FCGI_PUTENV.

Bi daxwazkirina URLek ku bi rengek diyarkirî hatî çêkirin, êrîşkar dikare bigihîje guheztinek nîşana path_info ber bi byta yekem a avahiya "_fcgi_data_seg", û nivîsandina sifirek li ser vê byte dê bibe sedema tevgera "char* pos". nîşana cîhek bîranînê ya berê ye. Ya din a bi navê FCGI_PUTENV dê daneyên di vê bîranînê de bi nirxek ku êrîşkar dikare kontrol bike binivîsîne. Bîra diyarkirî di heman demê de nirxên guhêrbarên din ên FastCGI hilîne, û bi nivîsandina daneyên wan, êrîşkar dikare guhêrbarek PHP_VALUE ya xeyalî biafirîne û koda xwe bi dest bixe.

Source: opennet.ru

Add a comment