اخبار فناوری

بحران PHP2Shell؛ دو نقص بحرانی، سرورهای PHP را به به‌روزرسانی فوری واداشت

تصویر مفهومی نماد فلزی PHP با دو شکاف قرمز، ایزوله روی پس‌زمینه مشکی

دو آسیب‌پذیری بحرانی در PHP، با نام PHP2Shell، مدیران سرورها را به به‌روزرسانی فوری واداشته‌اند. این نقص‌ها با شناسه‌های CVE-2026-109618 و CVE-2026-109619 ثبت شده‌اند و در شرایط مشخص به مهاجم اجازه می‌دهند بدون ورود به حساب کاربری، روی سرور کد اجرا کند. پروژه PHP در ۲۱ اکتبر ۲۰۲۶ نسخه‌های اصلاح‌شده را منتشر کرد.

PHP2Shell دقیقاً چه خطری دارد؟

ریشه مشکل به مدیریت حافظه و نحوه برخورد PHP با خطاهای جدی برمی‌گردد. در یکی از نقص‌ها، رسیدن مصرف حافظه به سقف تعیین‌شده در لحظه‌ای حساس، داده‌های داخلی را نیمه‌کاره باقی می‌گذارد؛ PHP ممکن است بعداً همان داده‌ها را معتبر فرض کند. نقص دیگر به باقی‌ماندن ارجاع به حافظه آزادشده مربوط است. پیامد این خطاها می‌تواند از توقف پردازش تا اجرای کد از راه دور باشد.

بنیاد PHP اجرای کد بدون احراز هویت را در Apache با mod_php تأیید کرده است. برای PHP-FPM نیز مسیرهایی وابسته به کد برنامه شناسایی شده‌اند. بنابراین صرف استفاده از PHP-FPM به معنی مصون‌بودن نیست؛ در عین حال، شیوه بهره‌برداری در همه سرورها یکسان نیست.

چرا یک ایراد قدیمی حالا به بحران تبدیل شد؟

گزارش پژوهشگران Calif نشان می‌دهد بخشی از سابقه مشکل به گزارشی در سال ۲۰۲۰ برمی‌گردد. در بررسی امنیتی سال ۲۰۲۴ نیز ایرادی مرتبط شناسایی شد، اما راه عملی سوءاستفاده از آن اثبات نشده بود. در پژوهش تازه، مسیرهایی پیدا شد که این خطاها را به اجرای کد تبدیل می‌کردند.

Calif نمونه‌های عملی حمله را روی برنامه‌هایی از جمله وردپرس، دروپال، جوملا و phpMyAdmin بررسی کرده است. این فهرست، نمونه‌های بررسی‌شده در پژوهش است و نباید آن را فهرست تمام سامانه‌های آسیب‌پذیر دانست.

حمله‌ها پیش از انتشار عمومی هم شروع شده بودند

آمازون در گزارش امنیتی خود از مشاهده تلاش برای سوءاستفاده در ۱۷ اکتبر خبر داده؛ چهار روز پیش از افشای عمومی. این فعالیت در شبکه تله‌های امنیتی MadPot دیده شده است. آمازون می‌گوید هنوز روشن نیست مهاجم چگونه پیش از انتشار عمومی به اطلاعات لازم دست یافته بود.

این گزارش میان مشاهده تلاش برای حمله و اثبات موفقیت آن تفاوت می‌گذارد: مشخص نیست همه تلاش‌های ثبت‌شده روی سامانه‌های واقعی موفق می‌شدند یا نه. با انتشار عمومی جزئیات، نمونه‌های بیشتری از کد اثبات آسیب‌پذیری ظاهر شدند و تلاش برای استفاده از آن‌ها هم افزایش یافت. آمازون توصیه کرده بررسی سوابق امنیتی از دست‌کم ۱۷ اکتبر آغاز شود، نه فقط از روز انتشار وصله.

کدام نسخه‌ها مشکل را برطرف می‌کنند؟

طبق اطلاعیه رسمی PHP، نسخه‌های زیر در ۲۱ اکتبر برای رفع این دو آسیب‌پذیری منتشر شدند:

  • PHP 8.5.12 برای شاخه 8.5
  • PHP 8.4.27 برای شاخه 8.4
  • PHP 8.3.36 برای شاخه 8.3
  • PHP 8.2.35 برای شاخه 8.2

پروژه PHP تأکید کرده است که راهکار موقت کاملی برای رفع هر دو نقص وجود ندارد و ارتقا به نسخه اصلاح‌شده ضروری است. برای سایت‌هایی که از وردپرس یا دیگر سامانه‌های مبتنی بر PHP استفاده می‌کنند، این به‌روزرسانی مربوط به PHP روی سرور است؛ به‌روزرسانی خود سامانه مدیریت محتوا جای آن را نمی‌گیرد.

نقش هوش مصنوعی چه بود؟

پژوهشگران Calif از مدل‌های زبانی برای بررسی کد و دنبال‌کردن الگوهای خطا کمک گرفتند. با این حال، خودشان تأکید کرده‌اند شناخت سابقه آسیب‌پذیری‌های PHP و تجربه پژوهشگر، جهت اصلی تحقیق را تعیین کرده است. روایت دقیق این است: ابزارهای هوش مصنوعی به تحقیق کمک کردند، اما کشف و اثبات آسیب‌پذیری حاصل یک فرایند پژوهشی بود.

مسئله فقط انتشار یک وصله نیست

بنیاد PHP پذیرفته است که اختلاف بر سر روش اصلاح، نگرانی درباره سازگاری و کمبود نیروی متخصص، رفع مشکل را به تأخیر انداخت. این پرونده دوباره نشان می‌دهد نگهداری نرم‌افزارهای پایه وب، به زمان و نیروی انسانی نیاز دارد؛ حتی وقتی ابزارهای جدید، پیدا کردن خطا را سریع‌تر می‌کنند.

دیدگاه خوانندگان

۰ دیدگاه منتشرشده
هنوز نظری منتشر نشده است

اولین دیدگاه مفید درباره این مطلب را شما بنویسید.

دیدگاه شما

درباره این مطلب چه فکر می‌کنید؟

نظر مرتبط و محترمانه پس از بررسی در همین صفحه منتشر می‌شود.