Leochaileacht PHP-fpm a ligeann do chianchód a fhorghníomhú ar an bhfreastalaí

Ar fáil eisiúintí ceartaitheacha PHP 7.3.11, 7.1.33 agus 7.2.24, ina bhfuil deireadh crícheach leochaileacht (CVE-2019-11043) sa síneadh PHP-FPM (Bainisteoir Próiseas FastCGI), a ligeann duit do chód a fhorghníomhú go cianda ar an gcóras. Chun ionsaí a dhéanamh ar fhreastalaithe a úsáideann PHP-FPM i gcomhar le Nginx chun scripteanna PHP a rith, tá sé ar fáil go poiblí cheana féin fear oibre leas a bhaint as.

Is féidir an t-ionsaí a dhéanamh i bhfoirmíochtaí nginx ina ndéantar cur ar aghaidh chuig PHP-FPM trí chodanna den URL a scaradh ag baint úsáide as “fastcgi_split_path_info” agus an athróg timpeallachta PATH_INFO a shainmhíniú, ach gan seiceáil ar dtús an bhfuil an comhad ann ag baint úsáide as an “try_files $ fastcgi_script_name” treoir nó an "má tá (! -f $) document_root$fastcgi_script_name)". Is é an fhadhb freisin le feiceáil sna socruithe a thairgtear don ardán NextCloud. Mar shampla, cumraíochtaí le struchtúir mar:

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

Is féidir leat réiteach na faidhbe a rianú i bhfearais dáileacháin ar na leathanaigh seo: Debian, RHEL, ubuntu, SUSE/openSUSE, FreeBSD, Arch, Fedora. Mar réiteach oibre, is féidir leat seic a chur leis an bhfuil an comhad PHP iarrtha ann tar éis na líne “fastcgi_split_path_info”:

try_files $fastcgi_script_name = 404;

Earráid is cúis leis an bhfadhb agus leideanna á láimhseáil i gcomhad sapi/fpm/fpm/fpm_main.c. Agus pointeoir á shannadh, glactar leis go gcaithfidh réimír a bheith i luach an athróg timpeallachta PATH_INFO a mheaitseálann an cosán chuig an script PHP.
Má shonraíonn an treoir fastcgi_split_path_info an cosán scripte a scoilteadh ag baint úsáide as slonn rialta nua-íogair (mar shampla, go leor samplaí le fios go n-úsáidfí "^(.+?\.php)(/.*)$"), ansin d'fhéadfadh ionsaitheoir a chinntiú go tá luach folamh scríofa chuig an athróg timpeallachta PATH_INFO. Sa chás seo, níos faide ar feadh an fhorghníomhú rinneadh ag scríobh path_info[0] go nialas agus ag glaoch ar FCGI_PUTENV.

Trí URL formáidithe ar bhealach áirithe a iarraidh, is féidir le hionsaitheoir an pointeoir path_info a aistriú chuig an gcéad bheart den struchtúr “_fcgi_data_seg”, agus má scríobhtar nialas don bheart seo cuirfear an “char* pos” ar aghaidh. pointeoir chuig limistéar cuimhne atá suite roimhe seo. Déanfaidh an chéad cheann eile ar a dtugtar FCGI_PUTENV na sonraí a fhorscríobh sa chuimhne seo le luach is féidir leis an ionsaitheoir a rialú. Stórálann an chuimhne sonraithe luachanna na n-athróg FastCGI eile freisin, agus trína gcuid sonraí a scríobh, is féidir le hionsaitheoir athróg bhréige PHP_VALUE a chruthú agus forghníomhú a gcód a bhaint amach.

Foinse: oscailtenet.ru

Add a comment