php-fpm இல் உள்ள பாதிப்பு, இது சர்வரில் ரிமோட் குறியீடு செயல்படுத்தலை அனுமதிக்கிறது

கிடைக்கிறது PHP 7.3.11, 7.1.33 மற்றும் 7.2.24 ஆகியவற்றின் திருத்த வெளியீடுகள், இதில் நீக்கப்பட்டது கிரிட்டிசெஸ்கயா பாதிப்பு (CVE-2019-11043) PHP-FPM (FastCGI செயல்முறை மேலாளர்) நீட்டிப்பில் உள்ளது, இது கணினியில் உங்கள் குறியீட்டை தொலைவிலிருந்து இயக்க அனுமதிக்கிறது. PHP ஸ்கிரிப்ட்களை இயக்க Nginx உடன் இணைந்து PHP-FPM ஐப் பயன்படுத்தும் சேவையகங்களைத் தாக்க, இது ஏற்கனவே பொதுவில் கிடைக்கிறது வேலை பயன்படுத்தி.

"fastcgi_split_path_info" ஐப் பயன்படுத்தி URL இன் பகுதிகளைப் பிரித்து PATH_INFO சூழல் மாறியை வரையறுப்பதன் மூலம் PHP-FPM க்கு முன்னனுப்புதல் மேற்கொள்ளப்படும் nginx உள்ளமைவுகளில் தாக்குதல் சாத்தியமாகும், ஆனால் முதலில் "try_files $fastcgi_script" ஐப் பயன்படுத்தி கோப்பின் இருப்பை சரிபார்க்காமல். உத்தரவு அல்லது "if (!-f $) document_root$fastcgi_script_name)". பிரச்சனையும் கூட வெளிப்படுத்தப்படுகிறது NextCloud தளத்திற்கு வழங்கப்படும் அமைப்புகளில். எடுத்துக்காட்டாக, கட்டமைப்புகள் போன்ற கட்டமைப்புகள்:

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

இந்தப் பக்கங்களில் விநியோகக் கருவிகளில் உள்ள சிக்கலின் தீர்வை நீங்கள் கண்காணிக்கலாம்: டெபியன், RHEL, உபுண்டு, SUSE/openSUSE, ஃப்ரீ, ஆர்க், ஃபெடோரா. ஒரு தீர்வாக, “fastcgi_split_path_info” வரிக்குப் பிறகு கோரப்பட்ட PHP கோப்பின் இருப்புக்கான காசோலையைச் சேர்க்கலாம்:

try_files $fastcgi_script_name =404;

ஒரு கோப்பில் சுட்டிகளை கையாளும் போது ஏற்பட்ட பிழையால் சிக்கல் ஏற்படுகிறது sapi/fpm/fpm/fpm_main.c. ஒரு சுட்டியை ஒதுக்கும்போது, ​​PATH_INFO சூழல் மாறியின் மதிப்பு PHP ஸ்கிரிப்ட்டுக்கான பாதையுடன் பொருந்தக்கூடிய முன்னொட்டைக் கொண்டிருக்க வேண்டும் என்று கருதப்படுகிறது.
fastcgi_split_path_info உத்தரவு புதிய வரி-சென்சிட்டிவ் ரெகுலர் எக்ஸ்ப்ரெஷனைப் பயன்படுத்தி ஸ்கிரிப்ட் பாதையைப் பிரிப்பதைக் குறிப்பிட்டால் (உதாரணமாக, பல எடுத்துக்காட்டுகள் "^(.+?\.php)(/.*)$" ஐப் பயன்படுத்த பரிந்துரைக்கின்றன), பின்னர் தாக்குபவர் ஒரு வெற்று மதிப்பு PATH_INFO சூழல் மாறிக்கு எழுதப்பட்டது. இந்த வழக்கில், மரணதண்டனை மேலும் மேற்கொள்ளப்பட்டது path_info[0] ஐ பூஜ்ஜியத்திற்கு எழுதி FCGI_PUTENV ஐ அழைக்கிறது.

ஒரு குறிப்பிட்ட வழியில் வடிவமைக்கப்பட்ட URL ஐக் கோருவதன் மூலம், தாக்குபவர் “_fcgi_data_seg” கட்டமைப்பின் முதல் பைட்டுக்கு path_info சுட்டிக்காட்டியை மாற்ற முடியும், மேலும் இந்த பைட்டில் பூஜ்ஜியத்தை எழுதுவது “char* pos” இன் இயக்கத்திற்கு வழிவகுக்கும். முன்பு அமைந்துள்ள நினைவக பகுதிக்கான சுட்டி. அடுத்ததாக அழைக்கப்படும் FCGI_PUTENV இந்த நினைவகத்தில் உள்ள தரவை தாக்குபவர் கட்டுப்படுத்தக்கூடிய மதிப்புடன் மேலெழுதும். குறிப்பிடப்பட்ட நினைவகம் மற்ற FastCGI மாறிகளின் மதிப்புகளையும் சேமிக்கிறது, மேலும் அவற்றின் தரவை எழுதுவதன் மூலம், தாக்குபவர் கற்பனையான PHP_VALUE மாறியை உருவாக்கி அவற்றின் குறியீட்டை செயல்படுத்த முடியும்.

ஆதாரம்: opennet.ru

கருத்தைச் சேர்