Vulnerabbiltà f'php-fpm li tippermetti l-eżekuzzjoni remota tal-kodiċi fuq is-server

Disponibbli rilaxxi korrettivi ta' PHP 7.3.11, 7.1.33 u 7.2.24, li fihom eliminati kritika vulnerabbiltà (CVE-2019-11043) fl-estensjoni PHP-FPM (FastCGI Process Manager), li tippermettilek tesegwixxi l-kodiċi tiegħek mill-bogħod fis-sistema. Biex tattakka servers li jużaw PHP-FPM flimkien ma 'Nginx biex imexxu skripts PHP, huwa diġà disponibbli pubblikament ħaddiem tax-xogħol jisfruttaw.

L-attakk huwa possibbli f'konfigurazzjonijiet nginx li fihom it-twassil lejn PHP-FPM jitwettaq billi jiġu separati partijiet tal-URL bl-użu ta '"fastcgi_split_path_info" u tiddefinixxi l-varjabbli ambjentali PATH_INFO, iżda mingħajr ma l-ewwel tiċċekkja l-eżistenza tal-fajl billi tuża l-"try_files $fastcgi_script_name" direttiva jew il-"jekk (!-f $) document_root$fastcgi_script_name)". Il-problema hija wkoll tidher fis-settings offruti għall-pjattaforma NextCloud. Pereżempju, konfigurazzjonijiet bi strutturi bħal:

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

Tista 'ssegwi r-riżoluzzjoni tal-problema f'kits ta' distribuzzjoni f'dawn il-paġni: Debian, RHEL, Ubuntu, SUSE/openSUSE, FreeBSD, arch, Fedora. Bħala soluzzjoni, tista 'żżid verifika għall-eżistenza tal-fajl PHP mitlub wara l-linja "fastcgi_split_path_info":

try_files $fastcgi_script_name =404;

Il-problema hija kkawżata minn żball meta timmanipula pointers f'fajl sapi/fpm/fpm/fpm_main.c. Meta tassenja pointer, huwa preżunt li l-valur tal-varjabbli tal-ambjent PATH_INFO għandu jkun fih prefiss li jaqbel mal-mogħdija għall-iskrittura PHP.
Jekk id-direttiva fastcgi_split_path_info tispeċifika l-qsim tal-mogħdija tal-iskript billi tuża espressjoni regolari sensittiva għal linja ġdida (pereżempju, ħafna eżempji jissuġġerixxu li tuża "^(.+?\.php)(/.*)$"), allura attakkant jista' jiżgura li valur vojt jinkiteb fil-varjabbli ambjentali PATH_INFO. F'dan il-każ, aktar tul l-eżekuzzjoni mwettqa tikteb path_info[0] sa żero u ċċempel lil FCGI_PUTENV.

Billi jitlob URL ifformattjat b'ċertu mod, attakkant jista 'jikseb bidla tal-pointer path_info għall-ewwel byte tal-istruttura "_fcgi_data_seg", u l-kitba ta' żero għal dan il-byte se twassal għall-moviment tal-"char * pos" pointer għal żona tal-memorja li kienet tinsab qabel. Li jmiss imsejjaħ FCGI_PUTENV se jissostitwixxi d-data f'din il-memorja b'valur li l-attakkant jista 'jikkontrolla. Il-memorja speċifikata taħżen ukoll il-valuri ta 'varjabbli FastCGI oħra, u billi jikteb id-dejta tagħhom, attakkant jista' joħloq varjabbli fittizju PHP_VALUE u jikseb l-eżekuzzjoni tal-kodiċi tiegħu.

Sors: opennet.ru

Żid kumment