versiuni corective PHP 7.3.11, 7.1.33 și 7.2.24, în care critică (CVE-2019-11043) în extensia PHP-FPM (managerul de procese FastCGI), care permite executarea de cod malițios de la distanță în sistem. Pentru atacurile asupra serverelor care utilizează PHP-FPM pentru a rula scripturi PHP, împreună cu Nginx, există deja disponibile public .
în setările propuse pentru platforma NextCloud. De exemplu, sunt vulnerabile configurațiile cu construcții de tip: location ~ [^\/]\.php(\/|$) {
fastcgi_split_path_info ^(.+?\.php)(\/.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass php:9000;
Monitorizarea soluționării problemei în distribuții poate fi realizată pe paginile respective:
}
. Ca metodă alternativă de protecție, după linia „fastcgi_split_path_info”, se poate adăuga o verificare a existenței fișierului PHP solicitat: , , , , , , try_files $fastcgi_script_name =404;
Problema este cauzată de o eroare în manipularea pointerilor în fișierul
sapi/fpm/fpm/fpm_main.c Dacă în directiva fastcgi_split_path_info este specificată separarea căii către script utilizând o expresie regulată, sensibilă la trecerea caracterului de întrerupere a liniei (de exemplu, în multe exemple se propune utilizarea „^(.+?\.php)(\/.*)$”), atacatorul poate provoca înscrierea unei valori goale în variabila de mediu PATH_INFO. În acest caz, mai departe în execuție
înscrierea în path_info[0] a valorii zero și apelul FCGI_PUTENV. Solicitând un URL format într-un anumit mod, atacatorul poate provoca deplasarea pointerului path_info la primul byte al structurii „_fcgi_data_seg”, iar înscrierea valorii zero în acest byte va duce la mutarea pointerului „char* pos” în zona de memorie precedentă. Apelul ulterior FCGI_PUTENV va suprascrie datele din această memorie cu o valoare pe care o poate controla atacatorul. În memoria respectivă sunt stocate valorile altor variabile FastCGI, și prin înscrierea propriilor date, atacatorul poate crea o variabilă falsă PHP_VALUE și poate provoca executarea codului său.
Sunt disponibile versiunile corective PHP 7.3.11, 7.1.33 și 7.2.24, în care
Sursa: opennet.ro
