اليوم، 21 أكتوبر 2026، نشر فريق أمن PHP تحذيرا طارئا: ثغرتان حرجتان في جوهر اللغة، تطلقان معا اسم PHP2Shell، تسمحان للمهاجم بتنفيذ الكود عن بعد وبدون مصادقة على أي خادم يخدم PHP عبر الويب. ليست عيبا في ووردبريس، أو إضافة إضافية، أو خطأ في تكوين جهازك – بل في المفسر.
أقصى شدة تأتي من تفصيل تقني مهم: يتم معالجة الطلب الخبيث قبل تنفيذ سطر واحد من الكود. لا يهم مدى جودة كتابة تطبيقك — تسجيل الدخول، التحقق من الصحة، WAF التطبيق — لأن الهجوم يحدث داخل PHP نفسه أثناء تحضير الطلب.
الإصداران الجديدان في CVE
كلاهما يشتركان في نفس السبب الجذري — حيث يمكن لPHP ترك ذاكرته في حالة تلف عندما ينتهي الطلب بشكل غير طبيعي — لكنهما يستغلان بطرق مختلفة. كل منهما لديه درجة CVSS تبلغ 9.2 (حرجة):
- CVE-2026-109618 — معالجة أخطاء نفاد الذاكرة (OOM) يمكن أن تقطع PHP بينما يتم تهيئة بيانات الطلب الداخلية جزئيا فقط. يعامل تنظيف الطلبات اللاحق تلك البيانات غير الصالحة على أنها صالحة، مما يؤدي إلى تلف الذاكرة وتنفيذ الشيفرة عن بعد مع صلاحيات عامل الويب.
- CVE-2026-109619 — يمكن للحالة الداخلية المملوكة للطلب أن تبقى بعد تحرير ذاكرته. يمكن لطلب لاحق يقدمه نفس العامل استخدام تلك الحالة الراكدة قبل إعادة ضبط التهيئة العادية: استخدام بعد التحرر على الكومة، الكشف عن الذاكرة، ومرة أخرى، تنفيذ الشيفرة عن بعد بدون مصادقة.
تؤثر على جميع تثبيتات PHP التي تخدم طلبات الويب: PHP-FPM، Apache مع mod_php، php-cgi، FrankenPHP، وLiteSpeed. يعتبر فريق PHP أعلى خطر في mod_php، حيث يوجد بالفعل استغلال مثبت ينطلق قبل تشغيل كود التطبيق.
الصفحات المتأثرة
قمنا بتدقيق البنية التحتية بالكامل وهذه هي الصفحات التي تقدم PHP مع إصدارات تحت التحديثات — أي أنها عرضة للخطر حتى يتم تطبيق التحديث:
- PHP 8.3.35 (عرضة للخطر، تتطلب 8.3.36):
www.io-backup.com,www.dynamicdnspro.com,www.fisem.com. - PHP 8.4.25 (عرضة للخطر، تتطلب 8.4.27):
www.emhaseasociados.es,app.emhaseasociados.es. - PHP 8.4.26 (عرضة للخطر، تتطلب 8.4.27):
scanner.net-analyzer.com,app.fisem.com,buy.dynamicdnspro.com.
إذا كنت تدير مواقعك الخاصة، يمكنك التحقق من النسخة التي تعرض كل واحدة منها ب curl -sI https://tudominio.com | grep -i x-powered-by. ملاحظة: مجرد عدم ظهور الرأس لا يعني أنك بأمان، فقط أن الخادم لا يعلن عنه.
الإجراءات العاجلة
الحل الوحيد الكامل هو تحديث PHP. الإصدارات التي تحتوي على التحديث هي:
- PHP 8.5.12
- PHP 8.4.27
- PHP 8.3.36
- PHP 8.2.35
بالنسبة ل PHP 8.1 وما قبلها — خارج الدعم — أصدر فريق PHP الحد الأدنى من النسخ الخلفية ل 7.4 و8.0 و8.1، لكن التوصية الرسمية هي الانتقال إلى فرع مدعوم. في هذه الأثناء، إليكم الإجراءات التي نقوم بتنفيذها ونوصي بها:
- قم بتحديث النسخة المعدلة من فرعك في أقرب وقت ممكن ، مع إعطاء الأولوية للخوادم المعرضة للإنترنت.
- تخفيف جزئي فوري: تعطل
session.upload_progress.enabled=0فيphp.iniy، في PHP 8.5، وأيضاfatal_error_backtraces=0. أعد تشغيل جميع العاملين بعد التغيير. ملاحظة: وفقا لتحليلات Datadog وJFrog، هذا التخفيف جزئي وليس كاملا — لا يستبدل التحديث. - إصلاح
memory_limit=-1بدلا من استخدام حدود RLIMIT لتقليل مسارات التلف بواسطة OOM. - التصفية على الحافة: يمكن لجهاز WAF أو بروكسي عكسي أمام PHP أن يمنع طلبات الأجزاء المتعددة الشاذة قبل أن تصل إلى المحلل الضعيف.
- المراقبة: تتحقق من سجلات تقديم النماذج الكبيرة جدا، وأخطاء استنفاد الذاكرة أثناء تهيئة الطلبات، وعمليات الشل غير المتوقعة التي يطلقها عمال PHP.
إذا لم تستطع التحديث فورا، توصي CISA حتى بإيقاف أنظمة PHP المعرضة حتى يتم إصلاحها. هذه توصية جذرية لثغرة جذرية.
الخاتمة
PHP2Shell هو أحد الأخطاء التي تظهر مرة واحدة كل بضع سنوات فقط: حرجة، بدون مصادقة، وفي الطبقة أسفل أي تطبيق. التحديث موجود بالفعل وتطبيقه يستغرق دقائق على معظم الأنظمة. نحن نقوم بالفعل بتحديث جميع الصفحات المتأثرة المذكورة أعلاه؛ إذا كان لديك أي موقع مزود ب PHP، فهذا هو الوقت المناسب لفعل الشيء نفسه.