php-fpm haavatavus, mis vÔimaldab kaugelt kÀivitada koodi serveris.

Saadaolevad PHP 7.3.11, 7.1.33 ja 7.2.24 korrektsiooniversioonid, milles eemaldatud kriitiline haavatavus (CVE-2019-11043) PHP-FPM (FastCGI protsessihalduri) laienduses, mis vĂ”imaldab kaugjuhtimise teel oma koodi sĂŒsteemis kĂ€ivitada. RĂŒnnakuks PHP-failide töötlemisel PHP-FPM-i ja Nginx-i kombinatsioonis on juba avaldatud töötav eksploit.

RĂŒnnak on vĂ”imalik nginx-i konfigureerimistes, kus PHP-FPM-i suunamine toimub URL-i osade jagamisega «fastcgi_split_path_info» abil ning PATH_INFO keskkonnamuutuja mÀÀratlemisega, kuid ilma, et fail oleks eelnevalt kontrollitud direktiiviga «try_files $fastcgi_script_name» vĂ”i konstruktsiooniga «if (!-f $document_root$fastcgi_script_name)». Probleem on ka nĂ€itab ennast seadetes, mis on soovitatavad NextCloudi platvormile. NĂ€iteks on haavatavad konfiguratsioonid konstruktsioonide tĂŒĂŒbiga:

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

Probleemi lahendamise jÀlgimine distributsioonides on vÔimalik lehtedel: Debian, RHEL, Ubuntu, SUSE/openSUSE, FreeBSD, Arch, Fedora. Kaitseks vÔib pÀrast rida «fastcgi_split_path_info» lisada kontrolli, et taotletud PHP-fail eksisteerib:

try_files $fastcgi_script_name =404;

Probleem on pÔhjustatud vigadest nÀidikutega töötamisel failis sapi/fpm/fpm/fpm_main.c. Oleku mÀÀramisel eeldatakse, et PATH_INFO keskkonnamuutuj sissevoolus peab sisaldama esialgse PHP-faili teed.
Kui fastcgi_split_path_info direktiivis on mÀÀratud skripti tee jagamine regulaaravaldiste abil, mis on tundlik uue rea sĂŒmboli edastamise suhtes (nĂ€iteks paljudes nĂ€idetes soovitatakse kasutada «^(.+?\.php)(/.*)$»), siis vĂ”ib rĂŒndaja saavutada, et PATH_INFO keskkonnamuutujisse kirjutatakse tĂŒhi vÀÀrtus. Sellisel juhul, tĂ€iendavalt tĂ€itmisprotsessis toimub oleks path_info[0] null ja kutse FCGI_PUTENV.

Kindlalt koostatud URL-i pĂ€rides vĂ”ib rĂŒndaja saavutada, et path_info nĂ€idik nihkub struktuuri «_fcgi_data_seg» esimesse baiti, ning nulli kirjutamine sellesse baidi toob kaasa nĂ€idiku «char* pos» nihkumise varasemasse mĂ€luosa. JĂ€rgnev FCGI_PUTENV kutse kirjutab sellesse mĂ€lusse andmed, mille ĂŒle rĂŒndaja vĂ”ib kontrolli omada. Sellises mĂ€lus hoitakse sealhulgas ka muid FastCGI muutujaid, ning kirjutades oma andmed, vĂ”ib rĂŒndaja luua vale PHP_VALUE muutuja ja saavutada oma koodi tĂ€itmise.

Allikas: opennet.ru

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster