PHP2Shell؛ چرا این CVE مهم است؟
PHP این آسیبپذیری را بحرانی اعلام کرده و میگوید میتواند بدون احراز هویت به Remote Code Execution منجر شود. از دید دفاعی، نتیجه بالقوه میتواند اجرای فرمان با سطح دسترسی فرایند PHP و در نتیجه گرفتن shell روی سرور باشد؛ این جمله توصیف اثر است، نه راهنمای بهرهبرداری.
وضعیت داخلی متعلق به یک درخواست میتواند پس از آزادشدن حافظه باقی بماند و درخواست بعدی روی همان worker از آن استفاده کند؛ در شرایط مشخص نتیجه اجرای کد از راه دور است.
چه نصبهایی در معرض ریسکاند؟
PHP اعلام کرده تمام نصبهایی که درخواست وب سرو میکنند باید بررسی شوند: PHP-FPM، Apache با mod_php، php-cgi، FrankenPHP و LiteSpeed. PHP ریسک mod_php را بالاتر توصیف کرده است.
نسخههای اصلاحشده
- PHP 8.2 → 8.2.35
- PHP 8.3 → 8.3.36
- PHP 8.4 → 8.4.27
- PHP 8.5 → 8.5.12
شاخه 8.1 و قدیمیتر از پشتیبانی upstream خارجاند؛ بستههای backport توزیع Linux یا LTS vendor را جدا بررسی کنید.
اقدام فوری
موجودی همه runtimeهای PHP را بگیرید، مخصوصاً سرویسهای Internet-facing و applianceهایی که PHP را embed کردهاند. PHP میگوید mitigation کامل وجود ندارد و بهروزرسانی انتخاب امن است. پس از patch، workerها و containerهای قدیمی را جایگزین کنید و لاگها را برای رفتار غیرعادی قبل از زمان patch مرور کنید.
نکته IROSG
وجود نسخه آسیبپذیر بهتنهایی اثبات compromise نیست. برای Incident Response باید شواهد host، web logs، تغییر فایل، process و credential را کنار هم بررسی کرد.