
PHP2Shell؛ دو نقص اجرای کد از راه دور در PHP پس از نشت قرارداد افشا، سایتها را به وصلهی فوری کشاند
دو نقص بحرانی با امتیاز ۹٫۲ در PHP روز ۲۱ اکتبر ۲۰۲۶ وصله شد. تایملاین نشت قرارداد افشا، نسخههای وصلهشده، دامنه خطر و راهکارهای عملی.
بزرگترین درس PHP2Shell نه صرفاً شدت فنی نقصها، بلکه شکنندگی «افشای هماهنگ» در برابر نشت است؛ وقتی شناسهها و اثباتمفهومها پیش از وصلهی گسترده بیرون بیایند، فاصله میان افشا و بهرهبرداری به ساعتها میرسد. این استنباط رونما از توالی رویدادهای مستند است، نه ادعای مستقیم منابع.
تصویر: Kirill Kudryavtsev / AFP via Getty Images — فرانکفورت، ۲۱ اکتبر ۲۰۲۶ (به نقل از تککرانچ)
دو نقص بحرانی اجرای کد از راه دور در PHP، با نام مستعار PHP2Shell و شناسههای CVE-2026-109618 و CVE-2026-109619، روز ۲۱ اکتبر ۲۰۲۶ با انتشار نسخههای وصلهشده علنی شد. بنیاد PHP امتیاز هر دو را ۹٫۲ (CVSS 4.0) اعلام کرده است. به گزارش تککرانچ، بانکها، فروشگاهها و برخی نهادهای دولتی برای وصلهکردن سرورها را موقتاً از دسترس خارج کردند. گزارش پالو آلتو نتورکس هم از دستکم یک دولت اروپایی خبر میدهد که وبسایتش را بهعنوان اقدام احتیاطی آفلاین کرده است.
در این تحلیل میخوانید
در یک نگاه
- امتیاز هر دو نقص ۹٫۲ در مقیاس CVSS 4.0 است؛ بنیاد PHP میگوید رقم ۱۰٫۰ که ۲۰ اکتبر ۲۰۲۶ همراه شناسهها پخش شد نادرست بود (بنیاد PHP، ۲۱ اکتبر ۲۰۲۶).
- نسخههای وصلهشده ۸٫۵٫۱۲، ۸٫۴٫۲۷، ۸٫۳٫۳۶ و ۸٫۲٫۳۵ هستند؛ انتشار عمومی ۲۱ اکتبر ۲۰۲۶ ساعت ۱۴:۰۰ UTC انجام شد، یک روز زودتر از برنامه (بنیاد PHP).
- سامانه Cortex Xpanse پالو آلتو نتورکس بیش از ۲۲٫۶ میلیون نمونه در معرضدید و بالقوه آسیبپذیر شناسایی کرده است (Unit 42، ۲۳ اکتبر ۲۰۲۶؛ برآورد فروشنده، نه شمارش مستقل).
- به نوشته تککرانچ، حدود ۷۰ درصد وبسایتهای متصل به اینترنت از PHP استفاده میکنند (به نقل از W3Techs)؛ این سهم رو به کاهش آهسته است.
چرا این رویداد فقط یک «وصلهی امنیتی دیگر» نیست؟
پرسش اصلی این گزارش دو بخش دارد: این دو نقص دقیقاً چه خطری ایجاد میکنند و چرا ماجرای افشای آنها بیش از خود نقصها درسآموز است؟ پاسخ کوتاه این است که نقصها در مدیریت حافظه و خطاهای زمان اجرای خود PHPاند، نه در یک افزونه یا برنامه جداگانه؛ بنابراین هر سامانهای که روی نسخه آسیبپذیر اجرا شود، فارغ از نرمافزار بالاتر، میتواند در معرض باشد. دلیل دوم، نشتی قرارداد افشا و انتشار ناخواسته یک ویدیوی نمایش است که پنجره امن وصلهکردن را کوتاه کرد.
پیشینه و تایملاین: از ممیزی تابستان تا خاموشی ۲۱ اکتبر
شرکت امنیتی Calif ممیزی کد PHP را در تابستان ۲۰۲۶ آغاز کرد؛ بنیاد PHP تاریخ آغاز را ۳۰ ژوئیه ۲۰۲۶ ذکر میکند. به گفته Calif، ممیزی ۲۰۲۴ (OSTIF/Quarkslab) هم مسئلهای مرتبط با کمبود حافظه یافته بود، اما قابلیت بهرهبرداری آن آن زمان اثبات نشد. تککرانچ در اینباره دو روایت ناهمخوان آورده و تاریخ دقیق کشف را روشن نکرده است؛ بنابراین رونما به روایت خود Calif و بنیاد PHP تکیه میکند.
- ۱۱ اوت ۲۰۲۶Calif نقص اول (کمبود حافظه) را به PHP گزارش میکند؛ ۱۴ اوت اثباتمفهوم اجرای کد و ۱۵ اوت تأیید آن از سوی PHP (Calif).
- ۲۱ اوت ۲۰۲۶نقص دوم گزارش میشود (Calif).
- حدود ۱۷ اکتبر ۲۰۲۶به نوشته تککرانچ، آمازون میگوید بهرهبرداری را حدود یک هفته پیش از وصلهها دیده و به مدافعان توصیه کرده شواهد را از ۱۷ اکتبر جستوجو کنند؛ آمازون نمیتواند بگوید مهاجم از کجا از نقصها باخبر شد.
- ۲۰ اکتبر ۲۰۲۶، حدود ۱۵:۰۰ UTCقرارداد افشا نشت میکند و شناسههای CVE همراه امتیاز نادرست ۱۰٫۰ پخش میشوند (بنیاد PHP).
- ۲۰ اکتبر ۲۰۲۶، حدود ۲۰:۰۰ UTCویدیوی نمایش Calif از اثباتمفهوم علیه چند هدف بهاشتباه منتشر و سپس حذف میشود؛ نسخههایی از آن دستبهدست شد (بنیاد PHP).
- ۲۱ اکتبر ۲۰۲۶، ۰۷:۴۱ UTCChainguard ایمیجهای حاوی وصله را بیش از شش ساعت پیش از انتشار هماهنگشده منتشر میکند (بنیاد PHP). بنیاد از انتشار زودهنگام یک شرکت ابراز گلایه کرده است.
- ۲۱ اکتبر ۲۰۲۶، ۱۴:۰۰ UTCانتشار عمومی نسخههای ۸٫۵٫۱۲، ۸٫۴٫۲۷، ۸٫۳٫۳۶ و ۸٫۲٫۳۵ (برنامه اولیه ۲۲ اکتبر بود).
- ۲۳ اکتبر ۲۰۲۶Unit 42 و Trail of Bits، به نوشته تککرانچ، از تأیید نفوذ و فعالیت پس از نفوذ خبر میدهند؛ Unit 42 هم میگوید اثباتمفهوم دیده است.
بنیاد PHP میگوید از ۱ ژوئیه تا این رویداد ۱۵ شناسه CVE منتشر کرده و بیش از ۱۰۰ گزارش دیگر نامعتبر، تکراری یا غیرقابل بازتولید بودهاند؛ یعنی فشار ممیزیها، از جمله ممیزیهایی که با کمک ابزارهای هوشمند انجام میشوند، سنگین بوده است. Calif خودش نوشته که مدلها در بهرهبرداری کمک کردند ولی بیشترِ کار به دانش پیشین پژوهشگران از کد و تاریخچه بهرهبرداری PHP تکیه داشت.
جزئیات فنی: کدام نسخهها و چه چیزی را باید وصله کرد؟
| مورد | CVE-2026-109618 | CVE-2026-109619 |
|---|---|---|
| توصیف بنیاد PHP | اجرای کد از راه دور از طریق خرابی حافظه هنگام کمبود حافظه (OOM) | اجرای کد از راه دور از طریق حالت سراسری باقیمانده (stale global state) |
| امتیاز | ۹٫۲ (CVSS 4.0) | ۹٫۲ (CVSS 4.0) |
| دامنه نسخه (به گفته Calif) | اجرای کد دلخواه روی Apache mod_php و PHP نسخه ۷٫۳ به بالا | mod_php و PHP نسخه ۵٫۴٫۰ به بالا؛ در PHP-FPM بسته به برنامه از مسیر پس از راهاندازی قابل بهرهبرداری است |
| نسخههای وصلهشده | ۸٫۵٫۱۲، ۸٫۴٫۲۷، ۸٫۳٫۳۶، ۸٫۲٫۳۵ (بنیاد PHP) | |
Calif اجرای کد پیش از احراز هویت را روی WordPress 7.1.2، Drupal 11.4.3، Joomla 6.1.4، MediaWiki 1.46.2، Roundcube 1.7.4، Magento 2.4.9، phpMyAdmin 5.2.3، Nextcloud 35.0.1، Laravel 13.11، Symfony 8.1 و WHMCS تأیید کرده است. این ادعای پژوهشگران است و رونما آن را مستقل بازآزمایی نکرده است. دامنه دقیق نسخههای آسیبپذیر در صفحه بنیاد PHP نیامده و به php.net ارجاع شده؛ آن صفحه در این نوبت خوانده نشد، پس فهرست رسمی نسخههای آسیبپذیر «تأییدنشده» است.
بازار و سهام
پیامد بازاری مستقیم گزارش نشده است؛ در منابع خواندهشده واکنش قیمتی سهام یا رمزارزی به این رویداد ثبت نشده و رونما عددی از حافظه نمینویسد. PHP نرمافزار متنباز است و شرکت بورسی واحدی ندارد؛ اثر غیرمستقیم میتواند بر شرکتهای امنیتی و ابری باشد، اما شواهد خواندهشده این ارتباط را اندازه نگرفتهاند. برای رصد بازار جهانی، ایران، رمزارز و کالا میتوانید از نقشه بازار رونما استفاده کنید.
تأثیر و راهکارها
تأثیر فنی و امنیتی
اجرای کد از راه دور بدون احراز هویت یعنی مهاجم میتواند بر سرور وب فرمان اجرا کند. Unit 42 در خلاصه خود گزارش داده که اثباتمفهوم دیده و دستکم یک دولت اروپایی سایتش را آفلاین کرده است. به گفته تککرانچ، مت پرینس (مدیرعامل Cloudflare) از افزایش «نمایی» تلاشهای بهرهبرداری پس از افشا گفته است. بنیاد PHP تأکید میکند پس از نشت، اثباتمفهوم کارکردیِ شناختهشدهای در زمان انتشار ندیده بود؛ همزمان پژوهشگران میگویند بهرهبرداری دشوار اما ممکن است، که فقدان بهرهبرداری انبوه تاکنون را توضیح میدهد. چون PHP در بسیاری از دستگاههای شبکه، ذخیرهسازها و فایروالها هم به کار رفته (به نوشته تککرانچ)، زنجیرهی وصله فراتر از وبسایتهاست.
ارتباط مستند با کاربران ایرانی در منابع خواندهشده گزارش نشده است. استنباط رونما این است که هر سایت یا سرویس میزبانیشده با PHP، مثلاً سامانههای مبتنی بر WordPress، فارغ از جغرافیا در معرض همین ریسک است؛ این استنباط دادهای از شمار سرورهای ایرانی ندارد.
راهکارها و توصیههای عملی
الف) توسعهدهندگان، مهندسان و مدیران فنی
- نسخه PHP هر سرور، کانتینر و تصویر را فهرست کنید و به ۸٫۵٫۱۲، ۸٫۴٫۲۷، ۸٫۳٫۳۶ یا ۸٫۲٫۳۵ ارتقا دهید؛ برای شاخههای دیگر در منابع خواندهشده وصلهای ذکر نشده و باید از php.net پیگیری شود.
- از صفحه رسمی php.net برای محدوده دقیق نسخهها استفاده کنید و تصویرهای پایه (Docker) را بازسازی کنید.
- لاگها را دستکم از ۱۷ اکتبر ۲۰۲۶ به بعد برای نشانههای بهرهبرداری بررسی کنید.
ب) سرمایهگذاران و فعالان بازار
- رصد کنید که شرکتهای میزبانی و ابری درباره زمان وصله و رویدادهای اختلال چه میگویند؛ شواهد اثر قیمتی هنوز گزارش نشده است.
- ریسکها: افشای نشتیهای بعدی، دعاوی احتمالی و هزینههای پاسخ به حادثه؛ این بخش توصیه خرید یا فروش نیست.
ج) کاربران نهایی و کسبوکارها
- اگر سایت شما WordPress، Joomla، Drupal یا مشابه است، از میزبان بپرسید PHP به نسخه وصلهشده ارتقا یافته یا نه.
- رمزها و کلیدهای API سامانههایی که ممکن است در معرض بودهاند را در صورت مشکوکبودن تغییر دهید و پشتیبان آفلاین داشته باشید.
ضدتحلیل و محدودیتها
قویترین اعتراض این است که تا این لحظه بهرهبرداری انبوه گزارش نشده و بنیاد PHP اثباتمفهوم کارکردی ندیده بود؛ یعنی خطر ممکن است در رسانهها بزرگتر از میدان به نظر برسد. در برابر آن، گزارشهای مستقل Unit 42 و Trail of Bits از تأیید نفوذ و فعالیت پس از نفوذ حکایت دارند. همچنین اعداد در معرض بودن (۲۲٫۶ میلیون) برآورد یک فروشندهاند. تأییدنشده در این نوبت: متن هشدار CISA، صفحه فنی php.net و میزان واقعی بهرهبرداری.
سوالات متداول
PHP2Shell چیست؟
نام مستعار دو نقص اجرای کد از راه دور در PHP با شناسههای CVE-2026-109618 و CVE-2026-109619 که Calif کشف کرد و در ۲۱ اکتبر ۲۰۲۶ وصله شد.
کدام نسخههای PHP وصله شدهاند؟
بنیاد PHP نسخههای ۸٫۵٫۱۲، ۸٫۴٫۲۷، ۸٫۳٫۳۶ و ۸٫۲٫۳۵ را منتشر کرد. فهرست دقیق نسخههای آسیبپذیر را باید در صفحه رسمی php.net دید.
امتیاز شدت چقدر است؟
۹٫۲ در CVSS 4.0؛ رقم ۱۰٫۰ که روز ۲۰ اکتبر پخش شد، به گفته بنیاد PHP نادرست بود.
آیا فقط با وصله میتوان ایمن شد؟
وصله راه اصلی است. Calif تنظیمات موقتی را فقط کاهشدهندهی جزئی میداند و دربارهی خطر memory_limit=-1 هشدار میدهد.
بهرهبرداری گستردهای ثبت شده است؟
Unit 42 اثباتمفهوم دیده و تککرانچ از تأیید نفوذ توسط Unit 42 و Trail of Bits خبر داده؛ بنیاد PHP زمان انتشار اثباتمفهوم کارکردی ندیده بود. میزان کلی بهرهبرداری تأییدنشده است.
منابع
- منبع اصلی بنیاد PHP — Today's PHP Security Release, and How We're Strengthening PHP Security — ۲۱ اکتبر ۲۰۲۶
- منبع تکمیلی Calif — PHP2Shell — ۲۱ اکتبر ۲۰۲۶
- منبع تکمیلی Unit 42 — Threat Brief: Critical Vulnerabilities in PHP — ۲۳ اکتبر ۲۰۲۶
- منبع تکمیلی تککرانچ — PHP-ocalypse: How two critical web bugs almost broke the internet — ۲۴ اکتبر ۲۰۲۶
اعتبارسنجی
پیوند تأیید همین خبرمطالب مرتبط
امنیت و ژئوپلیتیک · ۱۱ آبان ۱۴۰۵ترامپ و جنگ فرسایشی ایران؛ آیا فشار حداکثری علیه آمریکا عمل میکند؟ | تحلیل ۳۶۰
تحلیل · ۱۱ آبان ۱۴۰۵خامنهای دستور «پاسخ بدون محدودیت جغرافیایی» داد؛ این تهدید چه چیزی را عوض میکند؟
تحلیل · ۱۱ آبان ۱۴۰۵