دو آسیبپذیری بحرانی در زبان برنامهنویسی محبوب PHP شناسایی شدهاند. این آسیبپذیریها با شناسههای CVE-2026-109618 و CVE-2026-109619 ثبت شدهاند و به مهاجمان امکان میدهند بدون احراز هویت، کد دلخواه خود را از راه دور روی سرورهایی که PHP را اجرا میکنند، اجرا کنند.
تیم توسعه PHP برای تمام شاخههای تحت پشتیبانی این زبان، نسخههای بهروزرسانیشده منتشر کرده است. بااینحال، نخستین تلاشها برای بهرهبرداری از این آسیبپذیریها حتی پیش از انتشار وصلههای امنیتی مشاهده شدهاند. اکسپلویت مورد استفاده برای این حملات با نام PHP2Shell شناخته میشود.
ساختار فنی بسیاری از مارکتپلیسهای محبوب، پلتفرمهای تجارت الکترونیک و سامانههای مدیریت یادگیری (LMS) بر پایه PHP توسعه یافته است. علاوه بر این، PHP در سیستمهای مدیریت محتوا (CMS) مختلفی مانند WordPress، Drupal و Joomla نیز استفاده میشود؛ سیستمهایی که بخش بزرگی از وبسایتهای اینترنت را پشتیبانی میکنند.
در این مقاله، آسیبپذیریهای CVE-2026-109618 و CVE-2026-109619 را بهطور دقیق بررسی میکنیم و توضیح میدهیم سازمانها چگونه میتوانند از زیرساخت خود در برابر این تهدید محافظت کنند.
نسخههای آسیبپذیر PHP
بر اساس اطلاعات منتشرشده در وبسایت PHP، نسخههای قدیمیتر از موارد زیر در برابر آسیبپذیریهای CVE-2026-109618 و CVE-2026-109619 آسیبپذیر هستند:
-
PHP 8.2.35
-
PHP 8.3.36
-
PHP 8.4.27
-
PHP 8.5.12
برای شاخههای قدیمیتر PHP، وصله رسمی منتشر نشده است. همچنین، طبق گزارشهای غیررسمی، این آسیبپذیریها نسخههای PHP از 5.4.0 به بعد را نیز تحت تأثیر قرار میدهند.
چرا آسیبپذیریهای CVE-2026-109618 و CVE-2026-109619 خطرناک هستند؟
هر دو آسیبپذیری در مقیاس CVSS نسخه 4.0، امتیاز 9.2 دریافت کردهاند.
ریشه این آسیبپذیریها به نحوه مدیریت حافظه در PHP بازمیگردد. هنگامی که پردازش یک درخواست متوقف میشود (برای مثال، به دلیل کمبود حافظه)، PHP دادههای نامعتبر را در بافر حافظه باقی میگذارد و در ادامه مجدداً به آنها دسترسی پیدا میکند. این وضعیت میتواند زمینه اجرای کد روی سرور را فراهم کند.
در یکی از زنجیرههای حمله تأییدشده که از آسیبپذیری CVE-2026-109619 بهرهبرداری میکند، مهاجمان از سازوکار session.upload_progress استفاده میکنند؛ قابلیتی که وظیفه ردیابی پیشرفت بارگذاری فایلها را بر عهده دارد و بهصورت پیشفرض در PHP فعال است.
بهرهبرداری موفق از این آسیبپذیریها به مهاجمان اجازه میدهد بدون احراز هویت، کد دلخواه خود را از راه دور و با سطح دسترسی پردازش وبسرور اجرا کنند.
به گفته توسعهدهندگان PHP، تمام نصبهای نسخههای وصلهنشده که درخواستهای وب را پردازش میکنند، در معرض خطر هستند. این موارد شامل محیطهای زیر میشوند:
-
PHP-FPM
-
Apache همراه با mod_php
-
php-cgi
-
FrankenPHP
-
LiteSpeed
در میان این موارد، mod_php با بیشترین سطح خطر مواجه است. پژوهشگران اکسپلویتی را برای این ماژول نمایش دادهاند که در آن، یک درخواست بدون احراز هویت میتواند حمله را حتی پیش از اجرای کد برنامه آغاز کند.
سازمانها چه اقداماتی باید انجام دهند؟
در ادامه، مهمترین توصیههای توسعهدهندگان PHP و کارشناسان کسپرسکی را مرور میکنیم.
۱. PHP را به نسخههای اصلاحشده ارتقا دهید.
PHP را به یکی از نسخههای 8.5.12، 8.4.27، 8.3.36 یا 8.2.35 بهروزرسانی کنید. این فرایند را از سامانههایی آغاز کنید که از طریق اینترنت در دسترس هستند.
کد منبع نسخههای جدید از طریق وبسایت رسمی PHP در دسترس است.
اگر PHP را از طریق بستههای نرمافزاری توزیع لینوکس نصب کردهاید یا شرکت میزبان وب آن را در اختیار شما قرار میدهد، بستههای بهروزرسانیشده را بررسی کنید. توزیعهای لینوکس و ارائهدهندگان نسخههای دارای پشتیبانی بلندمدت (LTS) وصلههای امنیتی را از قبل دریافت کردهاند.
اگر مدیریت سرور بر عهده شرکت میزبانی وب است، از آنها بخواهید بهروزرسانی موردنیاز را اعمال کنند.
۲. برای نسخههای قدیمی PHP راهکار جایگزین در نظر بگیرید.
نسخههای 8.1 و قدیمیتر دیگر از سوی پروژه PHP بهروزرسانی دریافت نمیکنند. بااینحال، بررسی کنید که آیا ارائهدهنده توزیع لینوکس یا سرویس پشتیبانی بلندمدت شما، وصلههای امنیتی Backport شده را ارائه کرده است یا خیر. در غیر این صورت، به یکی از شاخههای تحت پشتیبانی مهاجرت کنید.
برای نسخههای PHP 7.4، 8.0 و 8.1، توسعهدهندگان وصلههای حداقلی را در سطح کد منبع آماده کردهاند که امکان کامپایل دستی آنها وجود دارد. این اصلاحات نیز از طریق وبسایت PHP قابل دسترسی هستند.
۳. سرویسهای PHP و وبسرور را مجدداً راهاندازی کنید.
پس از نصب بهروزرسانی، PHP-FPM یا وبسرور را مجدداً راهاندازی کنید تا فرایندهای اجرایی، کد جدید را بارگذاری کنند.
سپس با اجرای دستور زیر، نسخه PHP را بررسی کنید:
اگر PHP را از طریق بستههای نرمافزاری توزیع لینوکس نصب کردهاید، تغییرات ثبتشده در گزارش بهروزرسانی بسته (Package Changelog) را نیز بررسی کنید؛ زیرا ممکن است شماره نسخه نرمافزار تغییر نکرده باشد.
۴. گزارشهای ثبتشده از ۲۰ اکتبر را بررسی کنید.
یکی از نشانههای هشداردهنده این است که فرایند وبسرور اقداماتی خارج از وظایف معمول خود انجام دهد؛ برای مثال، اجرای Shell یا ابزارهایی مانند curl و wget.
راهکارهای امنیتی کسپرسکی میتوانند به شناسایی بهموقع فعالیتهای مخرب کمک کنند.
تلاش برای بهرهبرداری از آسیبپذیریهای اجرای کد از راه دور (RCE) توصیفشده در این گزارش، روی سیستمهای لینوکس و ویندوز، با استفاده از راهکار Kaspersky Next EDR Expert قابل شناسایی است.
همچنین، بهرهبرداری از آسیبپذیری PHP2Shell در ترافیک شبکه، توسط راهکار Kaspersky Anti Targeted Attack (KATA) و با استفاده از ماژول NDR شناسایی میشود.
اگر امکان نصب فوری بهروزرسانی وجود ندارد
تنها راهکار قطعی برای رفع کامل این آسیبپذیریها، نصب فوری وصلههای امنیتی است. بااینحال، اگر در حال حاضر امکان انجام این کار وجود ندارد، توصیه میشود اقدامات موقت حفاظتی را اجرا کنید.
توسعهدهندگان PHP برای هر یک از این آسیبپذیریها، دستورالعملهای گامبهگام ارائه کردهاند که از طریق وبسایت رسمی PHP قابل دسترسی هستند.