آسیب‌پذیری‌های چندگانه PHP، که منجر به اجرای کد دلخواه ‌می‌شود

آسیب‌پذیری‌های چندگانه PHP، که منجر به اجرای کد دلخواه ‌می‌شود

تاریخ ایجاد

اخیراً #‫آسیب‌پذیری‌های چندگانه در PHP کشف شده است که شدیدترین آنها منجر به اجرای کد دلخواه خواهد شد. PHP از طیف گسترده‌ای از سیستم عامل‌ها پشتیبانی می‌کند و توسط تعداد زیادی وب‌اپلیکیشن استفاده می‌شود که با بهره‌برداری موفقیت‌آمیز از شدیدترین این آسیب‌پذیری‌ها، می‌توان کد دلخواه را اجرا کرد. بسته به مجوزهای مرتبط با برنامه، یک مهاجم می‌تواند برنامه‌هایی را نصب، مشاهده، تغییر یا حذف کند و یا حساب‌های جدید با حقوق کامل کاربر ایجاد کند. همچنین در صورت بهره‌برداری ناموفق، ممکن است شرایط منع سرویس ایجاد شود.

نسخه‌های تحت تأثیر:

  • PHP 7.2نسخه‌‌های قبل‌‌تر از7.2.27
  • PHP 7.3 نسخه‌‌های قبل‌‌تر از 7.3.14
  • PHP 7.4 نسخه‌‌های قبل‌‌تر از 7.4.2

جزئیات این آسیب‌پذیری‌ها به شرح زیر است:
نسخه 27/2/7:

• Bug #79037 (global buffer-overflow in mbfl_filt_conv_big5_wchar). (CVE-2020-7060)
• Bug #79091 (heap use-after-free in session_create_id())
• Bug #79099 (OOB read in php_strip_tags_ex). (CVE-2020-7059)
نسخه 14/3/7:
• Bug #78999 (Cycle leak when using function result as temporary)
• Bug #79033 (Curl timeout error with specific url and post)
• Bug #79015 (undefined-behavior in php_date.c)
• Bug #78808 ([LMDB] MDB_MAP_FULL: Environment mapsize limit reached)
• Bug #74170 (locale information change after mime_content_type)
• Bug #78923 (Artifacts when convoluting image with transparency)
• Bug #79067 (gdTransformAffineCopy() may use unitialized values)
• Bug #79068 (gdTransformAffineCopy() changes interpolation method)
• Bug #79029 (Use After Free's in XMLReader / XMLWriter)
• Bug #79037 (global buffer-overflow in mbfl_filt_conv_big5_wchar)
• Bug #79040 (Warning Opcode handlers are unusable due to ASLR)
• Bug #78402 (Converting null to string in error message is bad DX)
• Bug #78983 (pdo_pgsql config.w32 cannot find libpq-fe.h)
• Bug #78980 (pgsqlGetNotify() overlooks dead connection)
• Bug #78982 (pdo_pgsql returns dead persistent connection)
• Bug #79091 (heap use-after-free in session_create_id())
• Bug #78538 (shmop memory leak)
• Bug #79099 (OOB read in php_strip_tags_ex). (CVE-2020-7059)
• Bug #54298 (Using empty additional_headers adding extraneous CRLF)
نسخه 2/4/7:
• Bug #79022 (class_exists returns True for classes that are not ready to be used)
• Bug #78929 (plus signs in cookie values are converted to spaces)
• Bug #78973 (Destructor during CV freeing causes segfault if opline never saved)
• Bug #78776 (Abstract method implementation from trait does not check "static")
• Bug #78999 (Cycle leak when using function result as temporary)
• Bug #79008 (General performance regression with PHP 7.4 on Windows)
• Bug #79002 (Serializing uninitialized typed properties with __sleep makes unserialize throw)
• Bug #79033 (Curl timeout error with specific url and post)
• Bug #79063 (curl openssl does not respect PKG_CONFIG_PATH)
• Bug #79015 (undefined-behavior in php_date.c)
• Bug #78808 ([LMDB] MDB_MAP_FULL: Environment mapsize limit reached)
• Bug #79046 (NaN to int cast undefined behavior in exif)
• Bug #74170 (locale information change after mime_content_type)
• Bug #79067 (gdTransformAffineCopy() may use unitialized values)
• Bug #79068 (gdTransformAffineCopy() changes interpolation method)
• Bug #79029 (Use After Free's in XMLReader / XMLWriter)
• Bug #79037 (global buffer-overflow in mbfl_filt_conv_big5_wchar). (CVE-2020-7060)
• Bug #78961 (erroneous optimization of re-assigned $GLOBALS)
• Bug #78950 (Preloading trait method with static variables)
• Bug #78903 (Conflict in RTD key for closures results in crash)
• Bug #78986 (Opcache segfaults when inheriting ctor from immutable into mutable class)
• Bug #79040 (Warning Opcode handlers are unusable due to ASLR)
• Bug #79055 (Typed property become unknown with OPcache file cache)
• Bug #78402 (Converting null to string in error message is bad DX)
• Bug #78983 (pdo_pgsql config.w32 cannot find libpq-fe.h)
• Bug #78980 (pgsqlGetNotify() overlooks dead connection)
• Bug #78982 (pdo_pgsql returns dead persistent connection)
• Bug #79091 (heap use-after-free in session_create_id())
• Bug #79031 (Session unserialization problem)
• Bug #78538 (shmop memory leak)
• Bug #79056 (sqlite does not respect PKG_CONFIG_PATH during compilation)
• Bug #78976 (SplFileObject::fputcsv returns -1 on failure)
• Bug #79099 (OOB read in php_strip_tags_ex). (CVE-2020-7059)
• Bug #79000 (Non-blocking socket stream reports EAGAIN as error)
• Bug #54298 (Using empty additional_headers adding extraneous CRLF)

برای رفع این آسیب‌پذیری‌ها توصیه می‌شود بلافاصله پس از تست مناسب، PHP خود را به آخرین نسخه ارتقاء دهید.

منابع:

https://www.cisecurity.org/advisory/multiple-vulnerabilities-in-php-could-allow-for-arbitrary-code-…

PHP:
https://www.php.net/ChangeLog-7.php#7.2.27
https://www.php.net/ChangeLog-7.php#7.3.14
https://www.php.net/ChangeLog-7.php#7.4.2

برچسب‌ها