اگر شما وبسایتی دارید که مبتنی بر PHP است و بر روی سرور NGINX بوده و ویژگی PHP-FPM بر روی آنها برای بهبود کارایی فعال شده است، باید در جریان باشید که یک آسیبپذیری به تازگی شناسایی شده که مهاجمان اجازه میدهد از راه دور به وبسایت شما نفوذ کنند. به این آسیبپذیری شناسهی CVE-2019-11043 اختصاص یافته است. این آسیبپذیری وبسایتهایی با ویژگی PHP-FPM و برخی پیکربندیها را تحت تاثیر قرار میدهد و گفته شده است که این پیکربندی خیلی هم غیرمعمول نیست. کد اثبات مفهومی برای این آسیبپذیری منتشر شده و نشان میدهد بهرهبرداری از آن به راحتی قابل انجام است.
ویژگی PHP-FPM جایگزینی برای پیادهسازی PHP FastCGI است که پردازشهای پیشرفته و با کارایی بالا را برای اسکریپتهایی که با زبان PHP نوشته شدهاند فراهم میکند. آسیبپذیری مهم یک اشکال خرابی حافظهی “env_path_info” underflow در ماژول PHP-FPM است و مهاجم با ترکیب این آسیبپذیری با آسیبپذیریهای دیگر میتواند از راه دور به وبسایت نفوذ کند.
یک محقق امنیتی در جریان مسابقات فتح پرچم این آسیبپذیری را شناسایی کرده و در ادامه به همراه دو محقق دیگر، کد اثبات مفهومی را برای آن توسعه داده و منتشر کرده است. اگرچه کد اثبات مفهومی که توسط محققان ارائه شده نسخههای PHP 7+ را هدف قرار داده ولی این آسیبپذیری نسخههای قبلتر را نیز تحت تاثیر قرار میدهد. بهطور خلاصه اگر بخواهیم بگوییم، یک وبسایت آسیبپذیر است اگر:
- سرور NGINX طوری پیکربندی شده که درخواست صفحات PHP را برای پردازندهی PHP-FPM ارسال میکند.
- در پیکربندی fastcgi_split_path_info directive وجود داشته و شامل گذارهای است که با سمبل ‘^’ شروع شده و با سمبل ‘$’ پایان مییابد.
- متغیر PATH_INFO با fastcgi_param directive تعریف شده است.
- بررسیهایی مانند try_files $uri =404 و یا if (-f $uri) برای وجود یا عدم وجود یک فایل انجام نمیشود.
این پیششرطهایی که برای بهرهبرداری از آسیبپذیری ذکر کردیم غیرمعمول نبوده و خیلی از ارائهدهندگان میزبانی سرویس وب از این پیکربندی استفاده میکنند. دیروز وصلهای برای این آسیبپذیری منتشر شده هرچند که آسیبپذیری یک ماه قبل به گروه توسعهدهندهی PHP گزارش شده بود. به دلیل اینکه کد اثبات مفهومی بهطور عمومی منتشر شده و آسیبپذیری به تازگی وصله شده است، بسیار محتمل است که مهاجمان اینترنت را برای شناسایی وبسایتهای آسیبپذیر اسکن کرده باشند. بنابراین به کاربرانی که وبسایت مبتنی بر PHP دارند اکیدا توصیه میشود تا آن را به نسخههای PHP 7.3.11 و PHP 7.2.24 بهروزرسانی کنند.