آسیبپذیریهای CVE-2026-109618 و CVE-2026-109619 در PHP: واکنش، اقدامات لازم و گامهای بعدی

پروژهی PHP در 21 اکتبر 2026 برای دو آسیبپذیری بحرانی، CVE-2026-109618 و CVE-2026-109619، بهروزرسانی امنیتی منتشر کرد. این دو آسیبپذیری ممکن است به اجرای کد از راه دور بدون احراز هویت منجر شوند. هر دو به نحوهی مدیریت داخلی حافظه و وضعیت درخواست در PHP مربوطاند و ممکن است به مهاجم اجازه دهند بدون ورود به سیستم، روی سرور آسیبپذیر کد اجرا کند.
PHP زیربنای بخش بزرگی از وب و بسیاری از محیطهای میزبانی است. به همین دلیل cPanel بیدرنگ اثر این آسیبپذیریها را بر محصولات خود بررسی کرد و از آن زمان بهروزرسانیها و راهنماییهایی برای مشتریان و شرکا منتشر کرده است.
در این نوشته آسیبپذیریها را شرح میدهیم، واکنش cPanel را مرور میکنیم و توضیح میدهیم مدیران سیستم در گام بعد چه باید بکنند.
چه چیزی اصلاح شد
پروژهی PHP در 21 اکتبر 2026 ساعت 13:30 UTC اصلاحیهها را در PHP 8.5.12، 8.4.27، 8.3.36 و 8.2.35 منتشر کرد. امتیاز هر دو آسیبپذیری در CVSS v4.0 برابر 9.2 است.
CVE-2026-109618 از راه خرابی حافظه هنگام رسیدگی به وضعیت کمبود حافظه (out-of-memory) به اجرای کد از راه دور منجر میشود. PHP برای اعمال memory_limit، درخواستی را که از این حد فراتر برود متوقف میکند. ممکن است PHP درست زمانی متوقف شود که دادههای داخلی درخواست، مثلاً بارگذاری فایل چندبخشی (multipart)، هنوز فقط تا نیمه مقداردهی شدهاند. در این حالت، مرحلهی پاکسازی درخواست ممکن است بخواهد حافظهای را آزاد کند که هرگز مقداردهی نشده است؛ حافظهای که شاید هنوز دادههای تحت کنترل مهاجم را از تخصیصهای قبلی در خود داشته باشد.
CVE-2026-109619 از راه وضعیت سراسری کهنه (stale global state) به اجرای کد از راه دور منجر میشود. ممکن است وضعیت داخلیِ یک درخواست، پس از آزاد شدن حافظهی پشتیبانش باقی بماند؛ مثلاً پس از یک خطای مهلک (fatal error). در این صورت، درخواست بعدی که همان worker پردازش میکند ممکن است پیش از آنکه مقداردهی عادی این وضعیت را بازنشانی کند، از آن استفاده کند.
هر نصب PHP که به درخواستهای وب پاسخ میدهد، از جمله PHP-FPM، Apache با mod_php، php-cgi، FrankenPHP و LiteSpeed، بالقوه در معرض خطر است. از نظر پروژهی PHP، پیکربندی mod_php پرخطرترین حالت است. شاخههای پایانعمر (PHP 8.1 و قدیمیتر) نیز آسیبپذیرند و دیگر از پروژهی PHP بهروزرسانی نمیگیرند. تیم امنیتی PHP حداقل اصلاحات لازم را بهصورت backport در کد منبع PHP 7.4، 8.0 و 8.1 منتشر کرده است.
کد اثبات مفهوم (proof-of-concept) عمومی کمکم منتشر شده و همین احتمال تلاش برای اکسپلویت را بالا میبرد.
این آسیبپذیری در خود PHP است، نه در cPanel و WHM یا WP Squared. محصولاتی که PHP را همراه خود دارند یا به آن وابستهاند، فقط در صورتی آسیبپذیرند که از محیط اجرای PHP وصلهنشده استفاده کنند.
واکنش ما
cPanel در فرایند افشای هماهنگ پروژهی PHP مشارکت داشت، بنابراین بستههای اصلاحشده پیش از انتشار عمومی بیلد و آزمایش شده بودند. پس از عمومی شدن اصلاحیهها، بستههای بهروزشدهی PHP، نسخههای جدید محصولات و راهکارهای کاهش خطر را عرضه کردیم. بهروزرسانیهای PHP در EasyApache 4 چند دقیقه پس از انتشار عمومی PHP روی mirrorهای ما قرار گرفت و بیلدهای اصلاحشده برای همهی نسخههای پشتیبانیشدهی cPanel و WHM کمتر از یک ساعت بعد منتشر شد.
وضعیت زیر مربوط به انتشارهایی است که تا 23 اکتبر 2026 انجام شده بود.
cPanel و WHM و WP Squared
بستههای بهروزشدهی PHP و یک ابزار رفع خودکار برای cPanel و WHM منتشر شده است. WP Squared 11.138.1.18 نیز با اصلاحات امنیتی و WP Toolkit بهروزشده عرضه شد. مدیران سیستم باید این بهروزرسانیها را از همان روال همیشگی بهروزرسانی اعمال کنند.
- EasyApache 4 v25.91 (21 اکتبر): ea-php82، ea-php83، ea-php84 و ea-php85 بهترتیب به 8.2.35، 8.3.36، 8.4.27 و 8.5.12 بهروز شدند. ea-php74، ea-php80 و ea-php81 هم اصلاحیهی backportشدهی پروژهی PHP را گرفتند، پس مشتریانی که PHP 7.4، 8.0 و 8.1 را زیر EasyApache 4 اجرا میکنند نیز پوشش داده میشوند. بستههای EasyApache 4 برای PHP 7.3 و قدیمیتر این اصلاحیه را نگرفتند.
- EasyApache 4 v25.92 (آن هم در 21 اکتبر) پس از آن با بستههای بهروزشدهی ea-php74-meta، ea-php80-meta و ea-php81-meta منتشر شد تا backport این CVE در گزارش تغییرات آنها هم ثبت شود. تغییر دیگری در کد PHP لازم نبود.
- cPanel و WHM نسخههای 11.138.0.18، 11.136.0.50، 11.134.0.66 و 11.110.0.153، PHPای را که خود cPanel و WHM استفاده میکنند بهروز میکنند (cpanel-php84 8.4.27 و در نسخهی 110، cpanel-php81 8.1.34-2). هر چهار نسخه انتشار امنیتی علامت خوردهاند.
- یک ابزار رفع خودکار، سرورها را به نصب این بهروزرسانیها سوق میدهد و PHP اختصاصی cPanel را در نسخههای قدیمیتر 112 تا 132 بهروز میکند.
- WP Squared 11.138.1.18 برای همهی ردیفهای WP Squared در دسترس است.
گزارشهای تغییرات: EasyApache 4 و cPanel و WHM 138 (با همین الگو برای 136، 134 و 110). جزئیات کامل: انتشار امنیتی بحرانی PHP: CVE-2026-109618 و CVE-2026-109619
TuxCare
TuxCare اصلاحیههای PHP را برای توزیعهای چند سیستمعامل با پشتیبانی تمدیدشده منتشر کرده و انتشارهای دیگری هم در راه است.
اقدامات توصیهشده
- PHP را بهروزرسانی کنید. به PHP 8.5.12، 8.4.27، 8.3.36 یا 8.2.35 ارتقا دهید، یا بستهی اصلاحشده را از فروشندهی سیستمعامل، کنترل پنل یا ارائهدهندهی LTS خود نصب کنید. پس از بهروزرسانی، PHP-FPM، Apache و دیگر پردازههای worker مربوط به PHP را ریاستارت کنید.
- محصولات cPanel را بهروزرسانی کنید. آخرین بهروزرسانیهای cPanel و WHM و WP Squared را که در بالا آمده است اعمال کنید.
- نسخههای پشتیبانینشدهی PHP را جایگزین کنید. اگر PHP 8.1 یا قدیمیتر دارید، یا سراغ فروشندهای بروید که اصلاحیههای backportشده ارائه میدهد، یا PHP را از backportهای کد منبع پروژهی PHP بیلد کنید، یا به شاخهای ارتقا دهید که هنوز پشتیبانی میشود.
- مخازن شخص ثالث را بررسی کنید. ممکن است مخازن اجتماعی در روز انتشار هنوز بستهی اصلاحشده نداشته باشند. با نگهدارندهی مخزن هماهنگ کنید یا به بستههای توزیع یا یک بیلد پشتیبانیشده رو بیاورید.
- پوشش معماریها را بررسی کنید. برخی مخازن، بیلدهای اصلاحشدهی amd64 را زودتر از arm64 منتشر کردند. مطمئن شوید همهی میزبانها، از جمله arm64، واقعاً نسخهی اصلاحشده را اجرا میکنند.
- کانتینرها و ابزارها را بازبینی کنید. فقط وبسرورهای عملیاتی کافی نیست؛ ایمیجهای کانتینر، runnerهای CI و ابزارهای داخلیای را هم که PHP دارند دوباره بیلد کنید.
مشتریان cPanel و WHM که ناچارند فعلاً روی نسخههای پایانعمر PHP بمانند، میتوانند پشتیبانی تمدیدشدهی چرخهی عمر برای PHP را خریداری کنند.
راهکارهای موقت کاهش خطر
بهروزرسانی PHP هر دو آسیبپذیری را برطرف میکند. اقدامات زیر، که از راهنمای پروژهی PHP گرفته شدهاند، خطر برخی مسیرهای مشخص حمله را کم میکنند، اما جای بهروزرسانی را نمیگیرند.
برای CVE-2026-109618:
- memory_limit=-1 را طوری تنظیم کنید که برنامهها نتوانند آن را تغییر دهند؛ مثلاً با php_admin_value در pool مربوط به FPM یا در پیکربندی Apache.
- post_max_size را پایین نگه دارید (مثلاً 8M، یا 32M جایی که بارگذاری فایل لازم است) و upload_max_filesize را از آن کمتر تنظیم کنید.
- برای اندازهی درخواست، تعداد فیلدها و تعداد بخشهای multipart در وبسرور یا پراکسی محدودیت بگذارید.
- برای حفظ دسترسپذیری، از محدودیت حافظهی کانتینر یا cgroup استفاده کنید. از RLIMIT_AS یا RLIMIT_DATA استفاده نکنید، چون ممکن است همان شکست تخصیص حافظه را که به آسیبپذیری منجر میشود، رقم بزنند.
برای CVE-2026-109619:
- session.upload_progress.enabled=0 را در php.ini، pool مربوط به FPM یا پیکربندی سرور تنظیم کنید و سپس همهی workerها را ریاستارت کنید. به ini_set() یا .user.ini بسنده نکنید.
- در PHP 8.5، fatal_error_backtraces=0 را تنظیم کنید و همهی workerها را ریاستارت کنید.
- تنظیمات نامعتبر یا منسوخ در سطح درخواست را که پیش از مقداردهی اولیه پیام تشخیصی تولید میکنند، حذف کنید.
- خطاهای مهلک و timeoutهایی را که مهاجم میتواند ایجاد کند، برطرف کنید.
اگر وصلهی فوری ممکن نیست، تا زمانی که اصلاحیه اعمال و تأیید شود، جدا کردن برنامههای در معرض اینترنت از شبکهی عمومی را در نظر بگیرید.
پروژهی PHP در 23 اکتبر 2026 توصیه کرد که حتی در نسخههای وصلهشده هم session.upload_progress.enabled=0 تا انتشار منظم بعدی رفع اشکال حفظ شود. این کار برای محافظت کامل در برابر یک مسیر حملهی مرتبط (CVE-2026-115560) لازم است. این مورد فقط برنامههایی را درگیر میکند که session.serialize_handler را در زمان اجرا تغییر میدهند. اگر این تنظیم را برای CVE-2026-109619 اعمال کردهاید، آن را نگه دارید. مدیران cPanel و WHM میتوانند آن را در MultiPHP INI Editor در WHM تنظیم کنند.
همکاری نزدیک با شرکا
ما با شرکای میزبانی و فروشندگان سیستمعامل دربارهی پیکربندیهای قدیمی و غیراستاندارد، از جمله نسخههای پایانعمر PHP و معماریهای مختلف، همکاری میکنیم. بازخورد شرکا دربارهی کمبودهای پوشش، مبنای انتشارهای بعدی است. اگر از شرکای ما هستید و دربارهی پیکربندی خاصی سؤال دارید، با نمایندهی حساب cPanel خود یا پشتیبانی تماس بگیرید.
گامهای بعدی
با آماده شدن انتشارها و بستههای بیشتر، مقالهی پشتیبانی cPanel را بهروز میکنیم. برای تازهترین اطلاعات دربارهی نسخهها و میزان پوشش، به انتشار امنیتی بحرانی PHP: CVE-2026-109618 و CVE-2026-109619 مراجعه کنید.
منبع: PHP CVE-2026-109618 and CVE-2026-109619, Response, Actions and Next Steps، cPanel Blog


