Varnarleysi í php-fpm sem gerir kleift að keyra fjarkóða á þjóninum

Boði leiðréttingarútgáfur af PHP 7.3.11, 7.1.33 og 7.2.24, þar sem útrýmt gagnrýninn varnarleysi (CVE-2019-11043) í PHP-FPM (FastCGI Process Manager) viðbótinni, sem gerir þér kleift að keyra kóðann þinn úr fjarlægð á kerfinu. Til að ráðast á netþjóna sem nota PHP-FPM í tengslum við Nginx til að keyra PHP forskriftir, er það nú þegar aðgengilegt vinnandi hagnýta sér.

Árásin er möguleg í nginx stillingum þar sem framsending til PHP-FPM fer fram með því að aðskilja hluta vefslóðarinnar með því að nota „fastcgi_split_path_info“ og skilgreina PATH_INFO umhverfisbreytuna, en án þess að athuga fyrst tilvist skráarinnar með því að nota „try_files $fastcgi_script_name“ tilskipuninni eða „ef (!-f $) document_root$fastcgi_script_name)“. Vandamálið er líka birtist í stillingunum sem boðið er upp á fyrir NextCloud vettvang. Til dæmis, stillingar með mannvirkjum eins og:

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

Þú getur fylgst með lausn vandans í dreifingarsettum á þessum síðum: Debian, RHEL, ubuntu, SUSE/openSUSE, FreeBSD, Arch, Fedora. Sem lausn geturðu bætt við athugun á tilvist umbeðinnar PHP skráar eftir línuna „fastcgi_split_path_info“:

try_files $fastcgi_script_name =404;

Vandamálið stafar af villu þegar verið er að vinna með ábendingar í skrá sapi/fpm/fpm/fpm_main.c. Þegar bendi er úthlutað er gert ráð fyrir að gildi PATH_INFO umhverfisbreytunnar þurfi að innihalda forskeyti sem passar við slóðina að PHP forskriftinni.
Ef fastcgi_split_path_info tilskipunin tilgreinir að skipta skriftarslóðinni með nýlínuviðkvæmri reglulegri tjáningu (til dæmis, mörg dæmi benda til þess að nota "^(.+?\.php)(/.*)$"), þá gæti árásarmaður tryggt að tómt gildi er skrifað í PATH_INFO umhverfisbreytuna. Í þessu tilviki, lengra með framkvæmdina framkvæmt skrifa path_info[0] á núll og hringja í FCGI_PUTENV.

Með því að biðja um vefslóð sem er sniðin á ákveðinn hátt getur árásarmaður náð að færa path_info bendilinn yfir á fyrsta bæti „_fcgi_data_seg“ skipulagsins og að skrifa núll í þetta bæti mun leiða til hreyfingar „char* possins“ bendil á áður staðsett minnissvæði. Næsti sem heitir FCGI_PUTENV mun skrifa yfir gögnin í þessu minni með gildi sem árásarmaðurinn getur stjórnað. Tilgreint minni geymir einnig gildi annarra FastCGI breyta og með því að skrifa gögn þeirra getur árásarmaður búið til uppdiktaða PHP_VALUE breytu og náð fram keyrslu á kóðanum sínum.

Heimild: opennet.ru

Bæta við athugasemd