php-fpm haavatavus, mis võimaldab kaugelt käivitada koodi serveris.

Saadaval korrektsed PHP 7.3.11, 7.1.33 ja 7.2.24 versioonid, milles on kõrvaldatud kriitiline haavatavus (CVE-2019-11043) PHP-FPM (FastCGI protsessihaldur) laiendis, mis võimaldab kaugjuhtimisega käivitada oma koodi süsteemis. Rünnaku jaoks serveritele, mis kasutavad PHP-FPM-i PHP-skriptide käivitamiseks koos Nginxiga, on juba avalikult saadaval töökorras eksploit.

Rünnak on võimalik Nginxi konfiguratsioonides, kus PHP-FPM-i suunamine toimub URL-i osade jagamise kaudu koos 'fastcgi_split_path_info' kasutamisega ning keskkonnamuutuja PATH_INFO määramisega, kuid ilma 'try_files $fastcgi_script_name' direktiivi või konstruktsioonita 'if (!-f $document_root$fastcgi_script_name)'. Probleem esineb ka ilmneb NextCloudi platvormi jaoks pakutavates seadetes. Näiteks on haavatavad konfiguratsioonid, millel on järgmised konstruktsioonid:

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

Probleemi lahendamise jälgimiseks distributsioonides saab jälgida järgmisi lehti: Debian, RHEL, Ubuntu, SUSE/openSUSE, FreeBSD, Arch, Fedora. Kaitse ümberpööramise meetodina, pärast 'fastcgi_split_path_info' rida, saab lisada kontrolli, et kontrollida, kas taotletud PHP-fail eksisteerib:

try_files $fastcgi_script_name =404;

Probleem on põhjustatud viga viidete käsitlemisel failis sapi/fpm/fpm/fpm_main.c. Viidendi määramisel eeldatakse, et keskkonnamuutuja PATH_INFO väärtus sisaldab tingimata eelmist prefiksi, mis vastab PHP-skripti teele.
Kui 'fastcgi_split_path_info' direktiivis määratakse skripti tee jagamine regulaaravaldistega, mis on tundlikud reavahetuse sümboli ülekande suhtes (näiteks paljudes näidetes soovitatakse kasutada '^(.+?\.php)(\/.*)$'), siis ründaja võib põhjustada PATH_INFO keskkonnamuutuja tühja väärtuse kirjutamist. Sel juhul mõningate edasiste käivituste kaudu teostatakse kirjutatakse path_info[0] null ja kutsutakse esile FCGI_PUTENV.

Küsimise korral teatud viisil vormindatud URL-i kaudu võib ründaja saavutada path_info viidete nihkumise struktuuri '_fcgi_data_seg' esimese baiti peale, ning nulli kirjutamine sellesse baiti viib 'char* pos' viidate nihkumiseni varem olnud mälupiirkonda. Järgmine järgnev FCGI_PUTENV kirjutab selle mälus oleva väärtuse, mida ründaja saab kontrollida. Antud mälus hoitakse ka teisi FastCGI muutujaid ja kirjutades sinna oma andmed võib ründaja luua vale PHP_VALUE muutuja, põhjustades oma koodi täitmise.

Allikas: opennet.ru

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster