
تیم توسعه PHP در ۲۱ اکتبر ۲۰۲۶ یک هشدار امنیتی مهم منتشر کرد. بر اساس اطلاعیه رسمی، دو آسیبپذیری بحرانی در شاخههای پشتیبانیشده PHP اصلاح شدهاند و مهاجم میتواند در شرایط مشخص، بدون احراز هویت، اجرای کد از راه دور (RCE) انجام دهد. این خبر برای مدیران سرور، شرکتهای هاستینگ و توسعهدهندگان وردپرس و دیگر برنامههای PHP اهمیت زیادی دارد؛ چون خطر پیش از رسیدن درخواست به منطق برنامه نیز میتواند فعال شود.
نسخههای اصلاحشده PHP کداماند؟
نسخههای PHP ۸.۵.۱۲، PHP ۸.۴.۲۷، PHP ۸.۳.۳۶ و PHP ۸.۲.۳۵ شامل اصلاحات امنیتی هستند. PHP اعلام کرده است که همه نصبهایی که درخواست وب را سرویس میکنند باید در سریعترین زمان ممکن به نسخه مناسب ارتقا پیدا کنند. این هشدار فقط به یک نوع وبسرور محدود نیست و PHP-FPM، Apache با mod_php، php-cgi، FrankenPHP و LiteSpeed را نیز دربرمیگیرد. طبق توضیح تیم امنیتی، ریسک در mod_php بیشتر ارزیابی شده است؛ زیرا یک مسیر بهرهبرداری اثباتشده میتواند پیش از اجرای کد برنامه، درخواست بدون احراز هویت را به مسیر آسیبپذیر برساند.
ریشه دو آسیبپذیری چیست؟
آسیبپذیری نخست با شناسه CVE-۲۰۲۶-۱۰۹۶۱۸ به مدیریت وضعیت کمبود حافظه مربوط است. اگر خطای تخصیص حافظه باعث شود PHP در حالی متوقف شود که دادههای داخلی درخواست بهصورت ناقص مقداردهی شدهاند، پاکسازی درخواست ممکن است داده نامعتبر را معتبر فرض کند. نتیجه میتواند فساد حافظه و در نهایت اجرای کد از راه دور باشد.
آسیبپذیری دوم با شناسه CVE-۲۰۲۶-۱۰۹۶۱۹ به باقیماندن وضعیت سراسری قدیمی مربوط میشود. بخشی از وضعیت داخلی متعلق به یک درخواست ممکن است پس از آزادشدن حافظه همچنان باقی بماند و worker در درخواست بعدی، قبل از مقداردهی عادی، از آن استفاده کند. این وضعیت نیز میتواند مسیر اجرای کد مهاجم را باز کند.
آیا فقط ارتقا کافی است؟
راهحل کامل، نصب نسخه اصلاحشده و راهاندازی مجدد workerها و سرویسهای مربوط به PHP است. در صورت استفاده از بستههای لینوکس یا نسخههای LTS، مدیر سیستم باید مخزن توزیع یا فروشنده خود را برای بسته بهروزشده بررسی کند؛ برخی توزیعها اصلاحات را پیشاپیش دریافت کردهاند. PHP ۸.۱ و نسخههای قدیمیتر از طرف پروژه اصلی دیگر بهروزرسانی نمیشوند، هرچند برخی توزیعها ممکن است وصله بازگرداندهشده ارائه کنند. همچنین PHP ۸.۲ در ۳۱ دسامبر ۲۰۲۶ به پایان عمر میرسد و بهتر است برنامه مهاجرت به شاخه جدیدتر از همین حالا آغاز شود.
اگر ارتقا بلافاصله ممکن نیست، تنظیماتی مانند محدودکردن post_max_size و upload_max_filesize، غیرفعالکردن session.upload_progress.enabled و اعمال محدودیت در سطح FPM یا وبسرور میتوانند برخی مسیرهای حمله را کاهش دهند؛ اما خود PHP صراحتاً تأکید کرده که این اقدامات، نصب را ایمن نمیکنند و جایگزین بهروزرسانی نیستند. برای PHP ۸.۵ نیز غیرفعالکردن fatal_error_backtraces میتواند تنها مسیر تأییدشده مربوط به backtrace را مسدود کند، نه همه گونههای احتمالی حمله را.
چکلیست فوری مدیر سرور
۱. با php -v و اطلاعات PHP-FPM نسخه واقعی فعال در محیط تولید را بررسی کنید؛ نسخه CLI همیشه نسخه سرویس وب نیست.
۲. بسته PHP، PHP-FPM، ماژولهای وبسرور و کانتینرهای مرتبط را به نسخه اصلاحشده ارتقا دهید.
۳. همه workerها، poolهای FPM، Apache یا LiteSpeed و سرویسهای وابسته را طبق روش امن محیط خود restart کنید.
۴. لاگهای وبسرور، FPM و سامانههای تشخیص نفوذ را برای درخواستهای غیرعادی، خطاهای حافظه، crash یا ایجاد پردازش ناشناس بررسی کنید.
۵. اگر نشانهای از سوءاستفاده وجود دارد، فقط به ارتقا اکتفا نکنید: اعتبارنامهها، کلیدهای API، حسابهای مدیریتی و فایلهای تغییرکرده را بررسی و در صورت نیاز تعویض کنید.
۶. نسخه PHP روی staging را با همان وبسرور و تنظیمات production آزمایش کنید و سپس rollout را مرحلهای انجام دهید.
جمعبندی
این هشدار از نوع بهروزرسانیهای معمولی نیست؛ دو آسیبپذیری با شدت بحرانی و امکان اجرای کد بدون احراز هویت مطرح شدهاند. مدیران سایتهای وردپرسی و برنامههای PHP باید نسخه سرویس وب را همین امروز بررسی کنند، به یکی از نسخههای PHP اصلاحشده مهاجرت دهند و پس از راهاندازی مجدد، لاگها و دسترسیهای حساس را بازبینی کنند. برای جزئیات فنی و فهرست دقیق نسخهها، اطلاعیه رسمی PHP و صفحه دانلودهای آن مرجع اصلی هستند.
این آسیبپذیری را در فهرست تغییرات امنیتی ثبت کنید و برای هر سرور، مالک اقدام و زمان تکمیل را مشخص کنید. اگر آسیبپذیری در محیطی فعال بوده است، بررسی پس از ارتقا را مستند کنید تا آسیبپذیری مشابه در rolloutهای بعدی نادیده نماند.
برای مطالب فنی بیشتر، بخش تکتاز مگ را دنبال کنید. منبع: PHP Security Advisory و PHP Downloads







