PHP2Shell: وصله CVE-2026-109618 و ارتقاء PHP قدیمی

در 20 اکتبر 2026، تیم امنیتی PHP در مورد دو آسیبپذیری حیاتی هشدار داد که هر کدام دارای امتیاز 9.2 از 10 در مقیاس CVSS v4.0 هستند. رفع فوری در 21 اکتبر منتشر شد CVE-2026-109618 و CVE-2026-109619، معروف به PHP2Shell. با هم، این آسیبپذیریهای PHP RCE میتوانند به مهاجمان احراز هویت نشده اجازه دهند تا کد راه دور را روی سرورهایی که درخواستهای وب PHP را پردازش میکنند، اجرا کنند.
بهرهبرداری موفقیتآمیز میتواند دادههای حساس تجاری را در معرض خطر قرار دهد، سرورها را در معرض خطر قرار دهد و برنامههای کاربردی وب را مختل کند. سازمان هایی که از سیستم های مبتنی بر PHP استفاده می کنند باید فوراً نسخه های نصب شده خود را بررسی کرده و به روز رسانی های امنیتی موجود را اعمال کنند.
همین الان اقدام کن
- PHP 8.2-8.5 را اجرا می کنید؟ فوراً به نسخه ثابت شعبه خود به روز کنید: 8.2.35، 8.3.36، 8.4.27 یا 8.5.12.
- PHP 5.x–8.1 را اجرا می کنید؟ این شعبه ها دیگر نسخه رسمی PHP را دریافت نمی کنند. قرار گرفتن در معرض را محدود کنید، تعمیرات فروشنده موجود را بررسی کنید و برای مهاجرت به PHP 8.4 یا 8.3 برنامه ریزی کنید. PHP 8.2 یک هدف بلند مدت عملی نیست، زیرا پشتیبانی امنیتی آن در 31 دسامبر 2026 به پایان می رسد.
- امروز نمی توانید درست کنید؟ دسترسی به اینترنت را محدود کنید و محافظت های موقت از جمله قوانین WAF را اعمال کنید. این اقدامات نمی توانند جایگزین وصله شوند.
وضعیت فعلی. گزارش هایی مبنی بر تلاش برای بهره برداری گزارش شده است. اطلاعات تهدید آمازون در 17 اکتبر 2026، چهار روز قبل از انتشار وصله ها، تلاشی را شناسایی کرد. Cloudflare همچنین حملات، از جمله تلاش برای دور زدن سیستم دفاعی WAF را نظارت می کند.
مرکز ملی امنیت سایبری بریتانیا به سازمانها توصیه میکند که اگر سیستمهای آسیبپذیر را نمیتوانند بهموقع وصلهها یا کاهشدهندههای موقتی را اجرا کنند، آفلاین کنند. نصبهای PHP روی وب را در اولویت قرار دهید و فعالیتهای مشکوک را که مربوط به 17 اکتبر است بررسی کنید.
PHP2Shell چیست و چرا خطرناک است؟
PHP2Shell نام دو آسیبپذیری مهم PHP است که هر دو نقص اجرای کد از راه دور (RCE) در زمان اجرا PHP دارند: CVE-2026-109618 و CVE-2026-109619. هر دو بر نحوه مدیریت حافظه توسط PHP در هنگام پردازش درخواستهای وب تأثیر میگذارند.
CVE-2026-109618 زمانی که حافظه PHP در حین پردازش درخواست و پاکسازی تمام می شود، حافظه را خراب می کند. CVE-2026-109619 زمانی اتفاق میافتد که یک کارگر PHP از حالت داخلی کهنه از یک درخواست قبلی مجددا استفاده میکند.
بر اساس یک توصیه امنیتی PHP که در 21 اکتبر منتشر شد، این نقص ها می تواند به مهاجمان اجازه دهد تا کد را بدون احراز هویت روی سرورهای آسیب پذیر اجرا کنند. در برخی از پیکربندیها، ممکن است یک سوء استفاده قبل از اجرای کد اصلی برنامه، با دور زدن بررسیهای امنیتی در سطح برنامه، رخ دهد.
این امر وب سایت ها، پلتفرم های تجارت الکترونیک و سایر سیستم های مبتنی بر PHP را در معرض خطر قرار می دهد، حتی زمانی که کد برنامه آنها از شیوه های کدگذاری ایمن پیروی می کند. از آنجایی که هر دو آسیبپذیری در زمان اجرای PHP وجود دارند، بررسی کد یک برنامه به تنهایی نمیتواند تهدید را از بین ببرد. به روز رسانی PHP به نسخه وصله شده مورد نیاز است.
به روز رسانی امنیتی PHP: کدام نسخه ها تحت تأثیر قرار می گیرند و وصله می شوند؟
طبق گفته Sansec، PHP2Shell بر تمام نسخههای PHP از 5.4، از جمله شاخههایی که دیگر پچها را دریافت نمیکنند، تأثیر میگذارد. طبق توصیههای امنیتی رسمی PHP، بهروزرسانیهای امنیتی برای PHP 8.2، 8.3، 8.4 و 8.5 در 21 اکتبر 2026 منتشر شد.
جدول زیر نسخه های ثابت و مهلت های نگهداری امنیتی آنها را همانطور که در برنامه رسمی پشتیبانی PHP مشخص شده است نشان می دهد.
| شاخه PHP | وضعیت | نسخه ثابت | پشتیبانی امنیتی به |
| 8.5 | پشتیبانی فعال | 8.5.12 | 31 دسامبر 2029 |
| 8.4 | پشتیبانی فعال | 8.4.27 | 31 دسامبر 2028 |
| 8.3 | فقط امنیت | 8.3.36 | 31 دسامبر 2027 |
| 8.2 | فقط امنیت | 8.2.35 | 31 دسامبر 2026 |
| 8.1 / 8.0 / 7.4 | پایان زندگی | منابع پشتیبان موجود است. هیچ انتشار رسمی | – |
| 7.3 و بالاتر / 5.x | پایان زندگی | هیچ تعمیر پروژه PHP اعلام نشده است | – |
نسخه های ثابت PHP2Shell و جدول زمانی پشتیبانی امنیتی رسمی
سازمانهایی که از دبیان، اوبونتو، RHEL یا میزبانی مدیریت شده استفاده میکنند باید بررسی کنند که آیا فروشندگان آنها وصلههای امنیتی پشتیبان را ارائه میدهند یا خیر. این اصلاحات ممکن است شماره نسخه قدیمی PHP را حفظ کند، بنابراین یادداشتهای انتشار بسته و توصیههای امنیتی قابل اعتمادتر از شماره نسخه به تنهایی هستند.
پشتیبانی امنیتی PHP 8.2 در 31 دسامبر 2026، تنها دو ماه پس از فاش شدن PHP2Shell به پایان می رسد. به روز رسانی یک نصب PHP 8.2 موجود به 8.2.35 برای رفع آسیب پذیری ها مورد نیاز است. با این حال، کسبوکارهایی که قصد مهاجرت از نسخه قدیمیتر PHP را دارند، باید PHP 8.4 را که تا دسامبر 2028 پشتیبانی میشود، یا PHP 8.3 تا دسامبر 2027 پشتیبانی میکنند، هدف بگیرند.
چگونه در 24 ساعت اول به PHP2Shell واکنش نشان دهیم
سازمان ها باید به سرعت برای شناسایی نصب های آسیب پذیر PHP، اعمال به روز رسانی های امنیتی و کاهش خطر حملات اقدام کنند. مراحل زیر می تواند به تیم های فناوری اطلاعات کمک کند تا پاسخ خود را اولویت بندی کنند.

1. هر نصب PHP را شناسایی کنید
سرورهای تولید و مرحلهبندی، برنامههای داخلی، کانتینرهای Docker، پلتفرمهای CMS و نرمافزارهای شخص ثالث را بررسی کنید. اجرا کنید php -v برای بررسی نسخه خط فرمان، اما به یاد داشته باشید که وب سایت ها ممکن است از نسخه دیگری از PHP استفاده کنند.
2. اولویت بندی سیستم های در دسترس عموم
با وبسایتها، پورتالهای مشتریان و سایر برنامههای کاربردی تحت وب شروع کنید. سپس سیستم های داخلی را بر اساس اهمیت و قرار گرفتن در معرض احتمالی آنها بررسی کنید.
3. PHP Patch را نصب کنید
PHP را به یک نسخه ثابت به روز کنید یا یک پچ از یک فروشنده تایید شده اعمال کنید. PHP-FPM، ماژول های وب سرور و تصاویر Docker را بررسی کنید. فقط به روز رسانی سرور میزبان، PHP داخل کانتینرها را به روز نمی کند.
4. در صورت تاخیر در وصله، دسترسی را محدود کنید
از دسترسی VPN، لیست سفید آدرسهای IP یا حفاظتهای WAF موجود استفاده کنید. آپلود فایل های غیر ضروری را موقتا محدود کنید یا در صورت لزوم سرویس های آسیب پذیر را آفلاین کنید. این اقدامات فقط قرار گرفتن در معرض را کاهش می دهد.
5. به تغییرات پیکربندی PHP اعتماد نکنید
مشاوره امنیتی رسمی PHP راه حل هایی را توصیه می کند session.upload_progress.enabled=0، memory_limit=-1و برای PHP 8.5، fatal_error_backtraces=0.
غیرفعال کردن محدودیت حافظه PHP به کنترلهای حافظه جداگانه در سطح سرور نیاز دارد، در حالی که تغییرات در تنظیمات جلسه و بازگشت به عقب نیاز به راهاندازی مجدد کارگران PHP دارد. این اقدامات فقط خطرات خاص حمله را کاهش می دهد. نصب وصله های امنیتی تنها راه حل کامل باقی می ماند.
6. به دنبال نشانه های سازش باشید
به دنبال فرآیندهای غیرمعمول PHP، فایلهای غیرمنتظره، بستههای وب، وظایف برنامهریزیشده جدید، حسابهای سرپرست ناشناخته و فعالیتهای مشکوک در گزارشهای سرور باشید. گزارش ها را برای بررسی بیشتر ذخیره کنید. Sansec همچنین گزارش میدهد که یکی از نقصها میتواند حافظه سرور را آشکار کند، بنابراین پس از وصله کردن، اعتبار چرخش، نشانههای جلسه و کلیدهای API را در سرورهای رو به اینترنت در نظر بگیرید.
7. از اسکریپت های سوء استفاده غیرقابل اعتماد خودداری کنید
ابزارهای اثبات مفهوم عمومی ناشناخته را روی سرورهای تولیدی اجرا نکنید. در عوض، وضعیت وصله را از طریق توصیههای امنیتی رسمی و مستندات یک فروشنده مورد اعتماد بررسی کنید.
پس از اصلاح، تست ویژگی های مهم برنامه، از جمله ورود به سیستم، پرداخت ها، ادغام ها و پردازش داده ها. مانیتور کردن خطاها و فعالیت سرور برای تأیید اینکه عملیات تجاری به طور عادی ادامه دارد.
آیا از PHP پشتیبانی نشده (5.x–8.1) استفاده می کنید؟ چرا تامین امنیت سخت تر است؟
برای مشاغلی که برنامه های قدیمی PHP را اجرا می کنند، وصله PHP2Shell می تواند پیچیده تر از نصب به روز رسانی امنیتی باشد. این برنامه ها اغلب به نرم افزارهای قدیمی وابسته هستند که ممکن است با نسخه های جدیدتر PHP کار نکنند. در نتیجه، ارتقاء ممکن است باعث مشکلات سازگاری و اختلال در عملیات تجاری شود.
چهار چالش رایج، امنیت برنامه های PHP قدیمی را دشوارتر می کند:
- نسخه های PHP پشتیبانی نشده PHP 5.x تا 8.1 دیگر نسخه رسمی PHP را دریافت نمی کند. تیم امنیتی PHP حداقل پورت های انتشار را برای نسخه های 7.4، 8.0 و 8.1 منتشر می کند و برخی از توزیع های لینوکس و ارائه دهندگان پشتیبانی تجاری ممکن است بسته های رفع مشکل را ارائه دهند. این اقدامات موقتی هستند، بنابراین کسب و کارها باید قرار گرفتن در معرض را محدود کنند و برای مهاجرت به نسخه PHP پشتیبانی شده برنامه ریزی کنند.
- چارچوب ها و کتابخانه های قدیمی. نسخههای قدیمیتر چارچوبهای شخص ثالث، پلتفرمهای CMS و بستههای Composer ممکن است از نسخههای مدرن PHP پشتیبانی نکنند. این وابستگی ها اغلب باید همراه با PHP به روز شوند.
- ادغام های حیاتی تجاری برنامه های قدیمی می توانند به درگاه های پرداخت، سیستم های CRM و ERP، پایگاه های داده و API های خارجی متصل شوند. ارتقاء ممکن است این اتصالات را تحت تأثیر قرار دهد و عملکردهای روزمره را مختل کند.
- پوشش تست محدود سیستمهای قدیمیتر اغلب فاقد تست خودکار هستند، که شناسایی مشکلات سازگاری را قبل از رسیدن بهروزرسانی دشوار میکند.
این چالشها مهاجرت PHP را به یک کار توسعه جداگانه تبدیل میکند که به برنامهریزی فراتر از یک وصله امنیتی اضطراری نیاز دارد. کسب و کارها ابتدا باید به مواجهه فوری بپردازند، سپس ارزیابی کنند که چه چیزی باید تغییر کند قبل از انتقال برنامه های خود به نسخه پشتیبانی شده PHP.
چگونه PHP را بدون شکستن برنامه خود ارتقا دهیم
ارتقاء یک برنامه قدیمی PHP به برنامه ریزی دقیق نیاز دارد، به ویژه در هنگام پشتیبانی از عملیات حیاتی تجاری. یک فرآیند ساختاریافته به شناسایی مشکلات سازگاری، کاهش زمان خرابی و اجرای برنامه پس از بهروزرسانی کمک میکند.

پایگاه کد و وابستگی ها را حسابرسی کنید
با بررسی کد، فریمورک ها، کتابخانه ها و پسوندهای PHP برنامه شروع کنید. ابزارهایی مانند PHPCompatibility و PHPStan میتوانند به شناسایی کدهایی کمک کنند که میتوانند در نسخههای جدیدتر PHP مشکل ایجاد کنند. اجرا کنید composer outdated برای یافتن وابستگی هایی که نیاز به به روز رسانی دارند. بررسی کنید که آیا نسخه Laravel، Symfony، WordPress یا Magento شما از نسخه PHP مورد نظر پشتیبانی می کند یا خیر. اجزایی که نیاز به تغییرات دستی دارند را فهرست کنید.
تغییرات کد سازگار را به صورت خودکار انجام دهید
Rector می تواند تغییرات خاصی را در کد PHP، از جمله تغییرات در نحو منسوخ شده و توابع منسوخ شده، خودکار کند. این می تواند کارهای تکراری را به خصوص در پایگاه های کد بزرگ کاهش دهد. با این حال، ابزارهای خودکار نمی توانند به طور قابل اعتمادی هر مشکل سازگاری را برطرف کنند. توسعهدهندگان باید تغییرات را بررسی کنند، تفاوتها در رفتار PHP را بررسی کنند، و کدهایی را که به کتابخانههای قدیمیتر یا منطق خاص برنامهها بستگی دارد، بهصورت دستی بهروزرسانی کنند.
یک مسیر ارتقاء کنترل شده را برنامه ریزی کنید
اگر الزامات سازگاری مانع ارتقاء به 8.4 می شود، PHP 8.4 یا PHP 8.3 را هدف قرار دهید. برنامه های قدیمی قدیمی ممکن است قبل از اینکه بتوانند روی نسخه پشتیبانی شده اجرا شوند به چندین مرحله تغییر کد نیاز داشته باشند. سازگاری را در یک محیط مرحلهبندی ایزوله آزمایش کنید و از استقرار نسخههای PHP پشتیبانینشده در محیط تولید خودداری کنید. PHP 8.2 می تواند به عنوان یک مرحله انتقال موقت عمل کند، اما باید در این شاخه به 8.2.35 یا بالاتر وصله شود.
تست رفتار برنامه قبل از استقرار
تست های واحد، ادغام و رگرسیون را برای شناسایی مشکلات معرفی شده توسط ارتقا اجرا کنید. توجه ویژه ای به ورود، پرداخت ها، عملیات پایگاه داده و ادغام های خارجی داشته باشید. برای کاربردهای پرترافیک، تست عملکرد را نیز شامل شود. قبل از استقرار، پشتیبانگیری ایجاد کنید و یک برنامه بازگشت به عقب آماده کنید تا در صورت بروز مشکلات جدی، تیم بتواند سرویس را بازیابی کند.
استقرار با حداقل زمان خرابی
هنگامی که معماری برنامه از این رویکردها پشتیبانی می کند، از پیاده سازی سبز آبی یا قناری استفاده کنید. به تدریج ترافیک را به محیط به روز منتقل کنید و نرخ خطا، عملکرد سرور و گزارش های برنامه را کنترل کنید. پس از استقرار، بررسی کنید که عملکردهای حیاتی کسب و کار همانطور که انتظار می رود کار می کنند. محیط قبلی را تا زمانی که برنامه به روز شده پایدار شود، برای بازگشت در دسترس نگه دارید.
چگونه کسب و کارها می توانند از اضطراری امنیتی بعدی PHP جلوگیری کنند؟
PHP2Shell نشان می دهد که چرا تعمیر و نگهداری منظم امنیت برای برنامه های PHP اهمیت دارد. کسبوکارها میتوانند با بهروز نگه داشتن نرمافزار خود و آمادهسازی برای مسائل امنیتی قبل از فوریت، خطرات آینده را کاهش دهند.
در اینجا پنج مرحله وجود دارد که باید در نظر داشته باشید:
- لیستی از نسخه های PHP را حفظ کنید. نسخههای PHP را که روی سرورها، برنامهها و ظروف Docker اجرا میشوند، ثبت کنید. هر زمان که نرم افزار یا زیرساخت تغییر کرد، این لیست را به روز کنید.
- برای ارتقا قبل از پایان عمر برنامه ریزی کنید. برنامه رسمی پشتیبانی PHP را به طور منظم بررسی کنید. چارچوب ها، کتابخانه ها و سایر وابستگی ها را قبل از از دست دادن پشتیبانی امنیتی، ارتقا دهید.
- بررسی های امنیتی را به صورت خودکار انجام دهید. اسکن وابستگی و بررسی تصویر ظرف را به خطوط لوله CI/CD اضافه کنید. توصیههای امنیتی را برای شناسایی آسیبپذیریهایی که ممکن است بر برنامههای شما تأثیر بگذارد نظارت کنید.
- برای نگهداری منظم برنامه ریزی کنید. برای نصب بهروزرسانیهای امنیتی، آزمایش سازگاری برنامهها و بررسی اجزای قدیمی وقت بگذارید. به روز رسانی های منظم به جلوگیری از ایجاد بدهی فنی کمک می کند.
- یک طرح واکنش به حادثه تهیه کنید. مسئولیتها را تعیین کنید، رویههای اصلاح را مستند کنید و نحوه آزمایش نقضهای امنیتی را تعیین کنید. در صورت بروز مشکل، مراحلی را برای آزمایش بهروزرسانیها و بازیابی خدمات اضافه کنید.
پیگیری ضربالاجلهای پشتیبانی PHP و توصیههای امنیتی به کسبوکارها زمان بیشتری برای برنامهریزی ارتقاء قبل از اینکه آسیبپذیریهای حیاتی برنامههایشان را در معرض خطر قرار دهد، میدهد.
چگونه SCAND به ایمن سازی و مدرن سازی برنامه های PHP کمک می کند
SCAND دارای بیش از 25 سال تجربه در توسعه نرم افزار، تیمی متشکل از 250+ مهندس و بیش از 900 پروژه تکمیل شده است. فرآیندهای ما دارای گواهینامه ISO 9001 و ISO 27001 هستند. SCAND خدمات توسعه PHP را با استفاده از لاراول و سایر فناوری های وب ارائه می دهد. پروژه های ما شامل یک سیستم تولید قرارداد قانونی خودکار و یک پلتفرم مدیریت پیک پزشکی است که هر دو تجربه ما را با برنامه های تجاری که بر چندین مؤلفه و ادغام متکی هستند، نشان می دهد.

اگر با PHP2Shell یا یک برنامه قدیمی PHP سر و کار دارید، ما می توانیم به سه روش به شما کمک کنیم:
- پچ اضطراری و بررسی قرار گرفتن در معرض. ما نصبهای PHP، از جمله کانتینرها و نرمافزار فروشنده را فهرستبندی میکنیم، وصلهها را اعمال میکنیم، حفاظت موقت WAF را راهاندازی میکنیم و با مهندسان DevOps خود نشانههایی از سازش را بررسی میکنیم.
- خدمات مهاجرت پی اچ پی ما سازگاری را بررسی میکنیم، وابستگیها را بهروزرسانی میکنیم و برنامه را بهعنوان بخشی از نوسازی برنامه قدیمی، با آزمایش نرمافزار قبل از انتقال، به PHP 8.3 یا 8.4 منتقل میکنیم.
- پشتیبانی مداوم ما توصیههای PHP و فریمورک را زیر نظر میگیریم، بهروزرسانیها را نصب میکنیم، و قبل از اینکه نسخه به پایان عمر برسد، ارتقاها را برنامهریزی میکنیم.
اگر تیم شما به ظرفیت مهاجرت اضافی نیاز دارد، می توانید توسعه دهندگان PHP را از SCAND استخدام کنید.
سوالات متداول (سؤالات متداول)
PHP2Shell چیست؟
PHP2Shell نامی است که به دو آسیبپذیری مهم PHP، CVE-2026-109618 و CVE-2026-109619 داده شده است، که میتواند به مهاجمان اجازه دهد تا کد را از راه دور بدون احراز هویت اجرا کنند. هر دو شامل مسائل مربوط به مدیریت حافظه در زمان اجرا PHP هستند. بهره برداری موفقیت آمیز می تواند سرور را به خطر بیاندازد، داده های حساس را در معرض دید قرار دهد یا وب سایت ها و برنامه های تجاری را مختل کند.
کدام نسخه های PHP CVE-2026-109618 و CVE-2026-109619 را برطرف می کنند؟
تیم توسعه پی اچ پی وصله ها را در 21 اکتبر 2026 منتشر کرد. نسخه های وصله شده PHP 8.2.35، 8.3.36، 8.4.27 و 8.5.12 هستند. سازمان ها باید به نسخه مناسب برای شاخه PHP خود به روز شوند. کسانی که از بسته های توزیع لینوکس استفاده می کنند باید به روز رسانی های امنیتی ارائه شده توسط فروشنده را نیز بررسی کنند.
آیا PHP 7.4 یا 8.1 تحت تأثیر قرار می گیرد و آیا رفع می شود؟
بله همه نسخه های PHP از نسخه 5.4 تحت تأثیر قرار گرفته اند (طبق گفته Sansec)، و PHP 7.4 و 8.1 نسخه های رسمی را دریافت نخواهند کرد. تیم امنیتی PHP حداقل پسپورتها را برای ساخت کد منبع منتشر میکند و برخی توزیعها و فروشندگان لینوکس بستههای پچ را ارائه میدهند. برای ارتقا برنامه ریزی کنید.
آیا تغییر WAF یا php.ini می تواند از سایت من محافظت کند؟
یک فایروال برنامه کاربردی وب (WAF) می تواند به مسدود کردن برخی از درخواست های مخرب کمک کند، در حالی که برخی تنظیمات php.ini می توانند قرار گرفتن در معرض روش های حمله خاص را کاهش دهند. با این حال، هیچ یک از آنها محافظت کامل در برابر PHP2Shell را ارائه نمی دهند. تیم امنیتی PHP نصب وصله های موجود را توصیه می کند. تا آن زمان، کسب و کارها باید در صورت امکان دسترسی به برنامه های آسیب پذیر را محدود کنند.
آیا باید به PHP 8.2، 8.3 یا 8.4 ارتقا دهم؟
برای انتقال جدید، PHP 8.4 با پشتیبانی امنیتی تا دسامبر 2028 انتخاب ترجیحی است. اگر برنامه شما هنوز با 8.4 سازگار نیست، PHP 8.3 جایگزین است. PHP 8.2 در دسامبر 2026 به پایان می رسد، بنابراین با نصب آخرین وصله های امنیتی، فقط به عنوان یک مرحله انتقال موقت از آن استفاده کنید.



