في 21 أكتوبر 2026 أصدر مشروع PHP النسخ 8.5.12 و8.4.27 و8.3.36 و8.2.35 لتصحيح ثغرتين حرجتين في محرك PHP، تعرفان باسم PHP2Shell. كلتاهما قد تسمح لمهاجم غير مسجل بتنفيذ شيفرة على خادم يشغل PHP، في ظروف معينة. تقييمهما CVSS 4.0 9.2، وتوجد أدلة مفهوم منشورة، وفي 26 أكتوبر أضافتهما CISA إلى لائحة الثغرات المستغلة فعليا.
الثغرتان في PHP نفسه، تحت إطار العمل الذي تستعمله. تحديث Laravel أو Symfony أو WordPress لا يصلحهما: يجب تحديث PHP على الخادم.
الثغرتان
CVE-2026-109618
إفساد الذاكرة بعد نفادها. عندما يصل طلب إلى memory_limit في لحظة خاطئة، يتخلى PHP عن الطلب ويترك بيانات داخلية نصف مهيأة يتعامل معها التنظيف لاحقا كأنها صالحة. طلبات multipart مصنوعة بعناية يمكن أن تسبب ذلك حتى داخل حدود الحجم العادية.
على Apache مع mod_php يمكن أن يحدث هذا قبل تشغيل أي شيفرة للتطبيق، وقد تم إثبات تنفيذ الشيفرة عن بعد بالإعدادات الافتراضية.
CVE-2026-109619
استعمال ذاكرة محررة بين الطلبات. خطأ قاتل في لحظة خاطئة (نفاد الذاكرة أو انتهاء المهلة) قد يترك حالة داخلية تشير إلى ذاكرة حررت في نهاية طلب سابق. الطلب التالي على نفس العامل قد يستعملها.
تم تأكيد تنفيذ الشيفرة عبر تتبع تقدم رفع الملفات في الجلسات، وهو مفعل افتراضيا، وعلى PHP 8.5 عبر تتبع الأخطاء القاتلة.
من المعرض للخطر
- Apache مع mod_php: الخطر الأعلى، لأن الثغرة الأولى يمكن الوصول إليها قبل تشغيل تطبيقك.
- PHP-FPM: معرض عبر بعض مسارات شيفرة التطبيق وعبر الجلسات؛ إعادة تدوير العمال تقلل الاحتمال دون إزالته.
- متأثرة أيضا: php-cgi وFrankenPHP وLiteSpeed.
- النسخ: PHP 8.2 قبل 8.2.35، و8.3 قبل 8.3.36، و8.4 قبل 8.4.27، و8.5 قبل 8.5.12. النسخ 8.1 وما قبلها لم تعد تتلقى إصدارات منتظمة، وتوجد فقط تصحيحات محدودة للشيفرة المصدرية.
التصحيح: حدث PHP ثم أعد التشغيل
- تحقق من النسخة التي تخدم طلبات الويب فعلا وليس فقط CLI: قد تختلف
php -vعن وحدة Apache أو مجموعة FPM. - حدث إلى 8.5.12 أو 8.4.27 أو 8.3.36 أو 8.2.35 أو أحدث. حزم التوزيعات قد تحمل التصحيح تحت رقم نسخة أقدم: مثلا صححت Ubuntu 24.04 الحزمة
8.3.6-0ubuntu0.24.04.13. اقرأ سجل تغييرات الحزمة للتأكد من أرقام الثغرات. - أعد تشغيل Apache وكل مجموعات PHP-FPM. العامل الذي بدأ قبل التحديث ما زال يشغل الشيفرة القديمة في الذاكرة.
- إذا كان الخادم معرضا قبل التصحيح، ابحث عن آثار اختراق: ملفات PHP غير متوقعة في مجلدات الرفع، مهام cron جديدة، عمليات غير معروفة.
إذا لم تستطع التصحيح اليوم
هذه الإجراءات تقلل التعرض ولا تعوض التحديث. طبقها في php.ini أو مجموعة FPM أو إعدادات الخادم، وليس عبر ini_set() أو .user.ini لأنها تأتي متأخرة، ثم أعد تشغيل العمال.
session.upload_progress.enabled=0يغلق مسار الجلسات في CVE-2026-109619.- على PHP 8.5:
fatal_error_backtraces=0. - اجعل
post_max_sizeصغيرا (8M، أو 32M إذا كنت تستقبل ملفات) واحجب طلبات multipart في الوكيل على المسارات التي لا تستقبلها. - إخفاء الأخطاء عبر
display_errorsأو@لا يفيد: الحالة القديمة تقرأ رغم ذلك.
ثغرة ثالثة في PHP لم تصحح بعد
ثغرة منفصلة، CVE-2026-115560، أعلنت في 23 أكتوبر. تتعلق بتسلسل الجلسات وتقدم الرفع، وتحتاج إعدادات غير معتادة، ولا يوجد لها تصحيح بعد. تعطيل تقدم الرفع في الجلسات يحجبها أيضا، وهذا سبب إضافي لتطبيق هذا الإعداد الآن.
ما قمنا به على خوادمنا
نشغل PHP في الإنتاج، لذلك قمنا بنفس الفحوص على خوادمنا: كل واحد يخدم PHP من نسخة مصححة أو من حزمة توزيعة تحتوي على التصحيح، وأعيد تشغيل كل عمليات Apache وPHP-FPM بعد التحديث. إذا كان لديك شك في خوادمك، فالفحوص الثلاثة أعلاه تأخذ عشر دقائق.
المصادر
تحتاج مساعدة لفحص خوادم PHP لديك؟
نصحح ونتحقق ونؤمن بيئات Laravel وPHP في الإنتاج.
تواصل مع Elaitech