Schwachstelle bei php-fpm déi d'Remote Code Ausféierung um Server erlaabt

Verfügbar korrektiv Verëffentlechunge vu PHP 7.3.11, 7.1.33 an 7.2.24, an deem eliminéiert kritesch Schwachstelle (CVE-2019-11043) an der PHP-FPM (FastCGI Process Manager) Extensioun, déi Iech erlaabt Äre Code um System op afstand auszeféieren. Fir Serveren ze attackéieren déi PHP-FPM a Verbindung mat Nginx benotzen fir PHP Scripten auszeféieren, ass et scho ëffentlech verfügbar Aarbechter exploitéieren.

Den Attack ass méiglech an nginx Konfiguratiounen, an deenen d'Forwarding op PHP-FPM duerchgefouert gëtt andeems Deeler vun der URL mat "fastcgi_split_path_info" trennt ginn an d'PATH_INFO Ëmfeldvariabel definéiert, awer ouni d'éischt d'Existenz vun der Datei mat der "try_files $fastcgi_script_name" ze kontrolléieren. Direktiv oder den "if (!-f $) document_root$fastcgi_script_name)". De Problem ass och manifestéiert ass an den Astellunge fir d'NextCloud Plattform ugebueden. Zum Beispill, Konfiguratiounen mat Strukturen wéi:

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

Dir kënnt d'Léisung vum Problem an Verdeelungskits op dëse Säiten verfollegen: Debian, RHEL, Ubuntu, SUSE/openSUSE, FreeBSD, Arch, Fedora. Als Léisung kënnt Dir e Scheck fir d'Existenz vun der ugefrote PHP-Datei no der Linn "fastcgi_split_path_info" addéieren:

try_files $fastcgi_script_name =404;

De Problem gëtt duerch e Feeler verursaacht wann Dir Pointer an enger Datei manipuléiert sapi/fpm/fpm/fpm_main.c. Wann Dir e Pointer zougewisen gëtt, gëtt ugeholl datt de Wäert vun der PATH_INFO Ëmfeldvariabel e Präfix muss enthalen deen de Wee zum PHP Skript entsprécht.
Wann d'Fastcgi_split_path_info Direktiv spezifizéiert d'Spaltung vum Skriptwee mat engem newline-sensiblen regulären Ausdrock (zum Beispill vill Beispiller proposéieren "^(.+?\.php)(/.*)$") ze benotzen, da kéint en Ugräifer suergen, datt eng eidel Wäert gëtt op d'PATH_INFO Ëmfeld Variabel geschriwwe. An dësem Fall, weider laanscht d'Ausféierung ausgefouert schreiwen path_info[0] op Null a rufft FCGI_PUTENV.

Andeems Dir eng URL op eng gewësse Manéier formatéiert hutt, kann en Ugräifer eng Verréckelung vum path_info Pointer op den éischte Byte vun der "_fcgi_data_seg" Struktur erreechen, an en Null op dësen Byte schreiwen féiert zu der Bewegung vum "char* pos" Zeigefanger zu engem virdrun lokal Erënnerung Beräich. Déi nächst genannt FCGI_PUTENV wäert d'Donnéeën an dëser Erënnerung iwwerschreiwe mat engem Wäert deen den Ugräifer kontrolléiere kann. De spezifizéierte Gedächtnis späichert och d'Wäerter vun anere FastCGI Variablen, a andeems se hir Donnéeën schreiwen, kann en Ugräifer eng fiktiv PHP_VALUE Variabel erstellen an d'Ausféierung vun hirem Code erreechen.

Source: opennet.ru

Setzt e Commentaire