تلف الذاكرة عند نفاد الذاكرة (OOM)
يتخلّى PHP عن الطلب عند فشل تخصيص الذاكرة، فتُستخدَم بياناتٌ داخلية نصف مُهيّأة أثناء التنظيف.
ثغرتان حرجتان في محرّك PHP نفسه (CVE-2026-109618 و CVE-2026-109619) تتيحان لمهاجمٍ غير مُصادَق تنفيذ أوامر على خادمك. تؤثران على كل تطبيق PHP مهما كانت جودة شيفرته، وقد بدأ استغلالهما فعليًا. صدرت التصحيحات في ٢١ أكتوبر ٢٠٢٦.
«php2shell» هو الاسم الذي أُطلق على ثغرتين حرجتين كُشفتا معًا في محرّك PHP في أكتوبر ٢٠٢٦. المشكلة ليست في شيفرة تطبيقك، بل في PHP نفسه الذي يعالج الطلب قبل أن تصل إلى شيفرتك — لذلك لا تحميك المصادقة على مستوى التطبيق، ويبقى الموقع عُرضةً حتى لو كان كوده سليمًا تمامًا.
تنشأ الثغرتان من أخطاء في إدارة الذاكرة أثناء معالجة الطلبات، ويمكن لمهاجمٍ بعيد وغير مُصادَق استغلالهما للوصول إلى تنفيذ الأوامر على الخادم (RCE) أو لتسريب محتوى الذاكرة.
يتخلّى PHP عن الطلب عند فشل تخصيص الذاكرة، فتُستخدَم بياناتٌ داخلية نصف مُهيّأة أثناء التنظيف.
تبقى حالةٌ من طلبٍ سابق تشير إلى ذاكرة محرَّرة، فيقرأها طلبٌ لاحق على العامل نفسه.
الثغرتان في محرّك PHP، وتؤثران على جميع واجهات التشغيل: PHP-FPM و Apache mod_php و php-cgi و FrankenPHP و LiteSpeed. أي منصة تعمل بـ PHP — بما فيها Magento و WooCommerce و Shopware و WordPress — متأثرة ما لم تُحدَّث.
مُصحّحة في 8.5.12
مُصحّحة في 8.4.27
مُصحّحة في 8.3.36
مُصحّحة في 8.2.35
منتهية الدعم — لا تصحيح رسمي (ترقيعات مصدرية محدودة لـ 7.4 / 8.0 / 8.1)
لا يحتاج المهاجم إلى حساب أو صلاحية؛ يكفي الوصول إلى الموقع.
تؤثر على كل تطبيق PHP بصرف النظر عن جودة كوده أو إطاره.
رُصد استغلالٌ في البرية وأُدرجت الثغرتان في قائمة CISA KEV، وتتوفّر أدوات إثبات مفهوم علنية.
سيطرةٌ على الخادم أو كشفُ أسرارٍ وبياناتٍ من الذاكرة كالمفاتيح والجلسات.
الحل الحاسم هو التحديث فورًا. إن تعذّر، طبّق الإجراءات المؤقتة ثم حدّث في أقرب فرصة.
اعرف إصدار PHP وواجهة التشغيل على كل خادم:
php -v php-fpm -v # if you use PHP-FPM
رقِّ إلى 8.5.12 أو 8.4.27 أو 8.3.36 أو 8.2.35 (أو أحدث) عبر مدير الحزم، ثم أعد تشغيل جميع العمال.
# example (Debian / Ubuntu) sudo apt update && sudo apt upgrade php8.3 sudo systemctl restart php8.3-fpm
عطّل تقدّم رفع الجلسة، وعلى PHP 8.5 عطّل آثار الأخطاء الحرجة، ثم أعد تشغيل جميع العمال:
; php.ini session.upload_progress.enabled = 0 fatal_error_backtraces = 0 ; PHP 8.5 only
PHP 8.1 وأقدم لن تتلقّى تصحيحًا رسميًا؛ خطّط للترقية إلى فرعٍ مدعوم.
شغّل PHP بأقل الصلاحيات، وفعّل جدار حماية تطبيقات (WAF) مع ترقيعٍ افتراضي، وراقب العمّال والسجلّات بحثًا عن تعطّلٍ متكرر أو سلوكٍ شاذ.
نُحدّد بسرعة ما إذا كانت أنظمتك مكشوفةً لـ php2shell — عبر خوادمك وتطبيقاتك وبيئاتك — ونمنحك تقريرًا واضحًا بما يجب ترقيعه ودرجة أولويته، ثم نُعيد الفحص للتأكد من إغلاق الثغرة.