أحدث المقالات
JOURNAL INDEX

ثغرة خطيرة في PHP تهدد ملايين المواقع: الإصدارات المتأثرة وطريقة الحماية

عبدالرحمن ربيع علي
عبدالرحمن ربيع علي Software Engineer & AI Builder

تفاصيل ثغرتي PHP الحرجتين CVE-2026-109618 وCVE-2026-109619، والإصدارات المصححة وخطوات حماية المواقع والخوادم.

ثغرة خطيرة في PHP تهدد ملايين المواقع: الإصدارات المتأثرة وطريقة الحماية

ثغرة PHP الخطيرة في أكتوبر 2026: الإصدارات المتأثرة وطريقة حماية موقعك

أصدر فريق PHP في 21 أكتوبر 2026 تحديثات أمنية عاجلة بعد الكشف عن ثغرتين خطيرتين قد تسمحان بتنفيذ تعليمات برمجية عن بُعد على الخادم دون تسجيل دخول. الخطر لا يقتصر على موقع مبني بإطار عمل معين؛ فالمشكلة في بيئة تشغيل PHP نفسها، ولذلك قد تشمل مواقع وتطبيقات كثيرة تعتمد على PHP، بما فيها أنظمة إدارة المحتوى والتطبيقات المخصصة.

تُعرف الثغرتان بالمعرّفين CVE-2026-109618 وCVE-2026-109619، وحصلتا على تقييم خطورة مرتفع جدًا بلغ 9.2 من 10. وأعلن المشروع عن إصدارات تتضمن الإصلاحات، من بينها PHP 8.5.12 و8.4.27 و8.3.36 و8.2.35. لذلك، فإن أهم خطوة عملية لمسؤول الموقع هي معرفة إصدار PHP الذي يعالج طلبات الويب فعلًا، ثم التنسيق مع شركة الاستضافة أو فريق البنية التحتية لتثبيت إصدار مصحح والتحقق من نجاح التحديث.

في هذا الدليل نشرح طبيعة الخطر بلغة واضحة، والإصدارات المعنية، وما الذي ينبغي فعله فورًا، وكيف تقلل المخاطر أثناء تجهيز التحديث. لا يعني وجود إصدار متأثر أن الموقع اختُرق بالفعل، لكنه يعني أن التأجيل غير المبرر يترك نافذة يمكن استغلالها.

ما الثغرتان وما سبب خطورتهما؟

مثال بصري لكود PHP يوضح لغة البرمجة التي تتعلق بها الثغرتان الأمنيتان.

الثغرة الأولى، CVE-2026-109618، ترتبط بالتعامل مع نفاد الذاكرة أثناء معالجة الطلبات. في ظروف معينة قد تتوقف عملية التهيئة الداخلية قبل اكتمالها، ثم تتعامل مرحلة تنظيف الطلب مع بيانات داخلية غير مكتملة كما لو كانت صالحة. هذا النوع من الأخطاء في إدارة الذاكرة قد يفتح الطريق أمام سلوك غير متوقع يصل في هذه الحالة إلى تنفيذ تعليمات عن بُعد.

أما CVE-2026-109619 فتتعلق ببقاء حالة داخلية مرتبطة بطلب سابق بعد تحرير الذاكرة التي كانت تخزنها. إذا أعاد العامل نفسه معالجة طلب لاحق قبل تصفير الحالة القديمة، فقد يستخدم بيانات لم تعد صالحة. تُعرف هذه الفئة عادةً باسم Use-After-Free، أي استخدام الذاكرة بعد تحريرها. وهي مشكلة منخفضة المستوى في وقت التشغيل، وليست بالضرورة خطأً في كود التطبيق الذي كتبه المطور.

المهم هنا أن المهاجم لا يحتاج بالضرورة إلى حساب مستخدم أو كلمة مرور لاستهداف الخادم. وقد يحدث المسار الحساس قبل وصول التنفيذ إلى منطق التطبيق نفسه، وهو ما يقلل قدرة المطور على إصلاح المشكلة بمجرد تعديل صفحة أو إضافة تحقق في Laravel أو WordPress. لا يعني ذلك أن كل محاولة ستنجح؛ فإمكانية الاستغلال تتأثر بنمط تشغيل PHP وإعدادات الخادم، لكن تقييم الخطورة الرسمي يبرر التعامل معها كأولوية عاجلة.

من المتأثر؟ وما الإصدارات الآمنة؟

محرر شيفرة يعرض ملفات PHP لمشروع MediaWiki لتوضيح اعتماد التطبيقات على بيئة تشغيل PHP.

أعلن مشروع PHP عن إصلاحات للفروع المدعومة التالية: PHP 8.5.12، وPHP 8.4.27، وPHP 8.3.36، وPHP 8.2.35. وتُعد الإصدارات الأقدم من رقم الإصلاح في الفرع نفسه معرضة للخطر وفق الإرشادات المنشورة. أما PHP 8.1 والإصدارات الأقدم فقد انتهى دعمها upstream؛ وقد توفر بعض توزيعات Linux أو مزودي الدعم طويل الأجل إصلاحات backport، لذا يجب التحقق من حزمة النظام نفسها بدل افتراض أن رقم الإصدار وحده يحسم الأمر.

تشمل البيئات المعنية PHP-FPM وApache مع mod_php وphp-cgi وLiteSpeed وFrankenPHP. وتشير الإرشادات الرسمية إلى أن المخاطر الأعلى لوحظت في mod_php بسبب مسار استغلال مثبت قبل تشغيل كود التطبيق. كما قد تتضمن بعض المنتجات الجاهزة أو الحاويات نسخة PHP لا يلاحظها مدير الموقع عند فحص إعداداته المعتادة.

لا يكفي أن ترى PHP حديثًا في الطرفية أو في إصدار محلي على جهازك؛ المطلوب هو التحقق من النسخة التي تستخدمها طلبات الويب في بيئة الإنتاج. فقد تختلف نسخة CLI عن نسخة FPM أو Apache، وقد تكون هناك عدة مواقع أو حاويات تعمل بإصدارات مختلفة.

خطوات عاجلة لتحديث الموقع بأمان

  1. احصر الأنظمة: سجّل كل موقع وتطبيق وخادم وحاوية تستخدم PHP، بما في ذلك المواقع القديمة واللوحات الداخلية والمهام المجدولة.
  2. تحقق من نسخة الويب: استخدم لوحة الاستضافة أو معلومات الخادم في التطبيق، ثم قارنها بنسخة CLI. لا تترك ملف phpinfo.php مكشوفًا للعامة؛ إن احتجته للتشخيص فاحمه واحذفه بعد الانتهاء.
  3. خذ نسخة احتياطية قابلة للاستعادة: احفظ قاعدة البيانات والملفات وملفات الإعداد، واختبر إمكانية الاستعادة. النسخة الاحتياطية غير المختبرة ليست خطة تعافٍ مؤكدة.
  4. حدّث إلى إصدار مصحح: اختر أحدث إصدار أمني متاح ومدعوم في فرعك، أو اطلب من شركة الاستضافة تأكيدًا مكتوبًا بالإصدار الذي تم تثبيته. لا تفترض أن تحديث WordPress أو Laravel وحده يصلح PHP.
  5. اختبر بعد التحديث: راجع صفحات تسجيل الدخول، ورفع الملفات، والمهام الخلفية، والاتصالات بقاعدة البيانات، والسجلات. أعد تشغيل أو تدوير عمال PHP-FPM والخدمات ذات الصلة حتى لا تبقى عمليات قديمة.
  6. تحقق من كل بيئة: راجع الإنتاج والاختبار والتطوير والحاويات وصور النشر وخوادم النسخ الاحتياطي التي قد تستقبل طلبات شبكة.

على الاستضافة المشتركة، قد لا يملك العميل صلاحية تحديث محرك PHP يدويًا. افتح تذكرة عاجلة واذكر رقمي CVE والإصدار الحالي واطلب تأكيدًا بالنسخة المصححة. إذا كانت لوحة التحكم توفر اختيار نسخة PHP، فتأكد أن التغيير يطبق على النطاق الصحيح وأن جميع المواقع الفرعية تستخدم الإعداد المطلوب.

أما في الخوادم التي تديرها بنفسك، فخطط للتحديث وفق مدير الحزم أو صورة الحاوية الرسمية، ولا تخلط ملفات PHP يدويًا من مصادر غير موثوقة. في بيئة الحاويات، يجب إعادة بناء الصورة ونشرها؛ تعديل المضيف وحده لا يصلح صورة قديمة ما زالت تعمل.

هل توجد حلول مؤقتة قبل التحديث؟

نشر فريق PHP بعض إجراءات تقليل التعرض لمسارات استغلال محددة، لكنها ليست بديلًا عن تثبيت الإصلاح. من بينها مراجعة إعدادات حدود الذاكرة وأحجام POST والرفع، وتعطيل session.upload_progress.enabled على مستوى الخادم أو FPM ثم إعادة تشغيل العمال، ومراجعة إعدادات fatal_error_backtraces على PHP 8.5. يجب تطبيق هذه التدابير وفق الإرشادات الرسمية وبالتنسيق مع مسؤول النظام، لأنها قد تؤثر في وظائف رفع الملفات أو التشخيص.

لا تغيّر memory_limit إلى قيمة غير محدودة بشكل عشوائي دون فهم أثر ذلك على استهلاك الموارد؛ التوصيات الرسمية تخص مسارًا بعينه ولا تضمن الحماية من كل أسباب فشل تخصيص الذاكرة. كما أن إخفاء رسائل الأخطاء باستخدام display_errors أو error_reporting لا يصلح الخلل الجذري. الحل الكامل هو إصدار مصحح، وأي تخفيف مؤقت يجب أن يكون قصير المدى وموثقًا.

كيف تتحقق من نجاح التحديث؟

تطبيق PHP يعمل محليًا مع ملف المصدر والطرفية والصفحة الناتجة بعد تشغيل التطبيق.

بعد تثبيت الإصلاح، لا تعتمد على رسالة نجاح واحدة. راجع رقم الإصدار الذي يعرضه إعداد PHP في لوحة الاستضافة، ثم تحقق من الخدمة التي تعالج الطلبات الفعلية. في الخادم الذي تديره بنفسك، قد تحتاج إلى مراجعة php -v ونسخة php-fpm أو وحدة Apache وحزم النظام، مع الانتباه إلى أن هذه الأوامر قد تعرض نسخًا مختلفة. إذا كان لديك أكثر من إصدار مثبت، فحدد المسار الذي يستخدمه كل موقع بدل الاكتفاء بأول نتيجة.

اختبر من خارج الخادم صفحة عادية وصفحة تتطلب جلسة دخول ورفع ملف إذا كان الموقع يعتمد عليه. راقب سجل خادم الويب وسجل PHP وسجلات التطبيق بحثًا عن أخطاء جديدة أو إعادة تشغيل متكررة للعمال. تأكد كذلك من أن المهام المجدولة وعمليات Queue تستخدم النسخة الصحيحة، فقد تستمر أوامر CLI في العمل بنسخة مختلفة عن نسخة الويب.

في أنظمة النشر الآلي، حدّث ملف القفل أو صورة الحاوية ومصدر البناء، ثم أعد البناء والنشر مع توثيق رقم الإصدار. إذا كان لديك موازن أحمال أو أكثر من خادم، تأكد من تحديث كل العقد، لا خادم واحد فقط. واحتفظ بخطة رجوع للتغييرات الوظيفية، لكن لا تعد إلى نسخة PHP الضعيفة باعتبار الرجوع حلًا مقبولًا؛ إذا ظهرت مشكلة توافق، اعزل الخدمة المتأثرة واعمل على إصلاحها مع الإبقاء على مستوى الحماية المطلوب.

ماذا تفعل إذا كنت تشك في حدوث اختراق؟

التحديث يعالج الثغرة لكنه لا يثبت أن الخادم لم يتعرض لاستغلال قبل التحديث. إذا ظهرت عمليات غير متوقعة أو ملفات PHP جديدة في مجلدات الرفع أو حسابات إدارية غير معروفة أو اتصالات صادرة غير مبررة، تعامل مع الأمر كحادث أمني محتمل. احتفظ بنسخة من السجلات والأدلة قبل حذف الملفات أو إعادة بناء الخادم، لأن التنظيف السريع قد يضيع معلومات مهمة عن طريقة الدخول.

راجع سجلات الوصول والخطأ والمصادقة، وركز على الطلبات غير المعتادة وأوقات الذروة وأي تغييرات في ملفات التطبيق أو المهام المجدولة. قارن الملفات المنشورة بمصدر موثوق أو نسخة بناء معروفة، وافحص مفاتيح SSH وحسابات لوحة التحكم وبيانات الاعتماد التي يمكن أن تكون تعرضت للسرقة. إذا كانت هناك مؤشرات قوية على اختراق، فاعزل الخادم عن الشبكة العامة حسب خطة الاستجابة، واستعن بمختص استجابة للحوادث بدل الاكتفاء بتغيير كلمة مرور واحدة.

بعد احتواء الحادث، غيّر الأسرار وكلمات المرور التي يحتمل تعرضها، وأبطل الجلسات والرموز عند الحاجة، ثم أعد النشر من مصدر نظيف. لا تستعد ملفات تنفيذية أو نسخًا احتياطية من فترة الاختراق دون فحصها. وثّق ما حدث وما تم إصلاحه، وأضف مراقبة تمنع تكرار المسار نفسه. هذه الخطوات احترازية عامة؛ لا تعني أن كل موقع يستخدم نسخة متأثرة قد تم اختراقه بالفعل.

أخطاء شائعة ينبغي تجنبها

  • الاعتقاد أن تحديث إطار العمل يصلح تلقائيًا محرك PHP.
  • فحص نسخة PHP على الكمبيوتر المحلي بدل نسخة الإنتاج.
  • تحديث الخادم الرئيسي ونسيان حاوية قديمة أو نطاق فرعي.
  • الاعتماد على جدار حماية تطبيقات الويب وحده؛ فهو قد يقلل بعض الطلبات لكنه لا يعالج خلل الذاكرة داخل PHP.
  • تأجيل التحديث لأن الموقع يعمل طبيعيًا؛ كثير من الثغرات لا تظهر أعراضها للمستخدم.
  • تثبيت ملفات تنفيذية من روابط عشوائية أو تعطيل خصائص أمان أخرى لتجاوز مشكلة توافق.

يمكن أن تساعد المراقبة وتقييد أحجام الطلبات وتقليل الخدمات المكشوفة في خفض التعرض، لكنها ليست بديلًا عن الإصلاح. وينبغي التعامل مع إرشادات التخفيف المؤقتة كإجراءات محددة للمسارات التي تغطيها، لا كضمان شامل.

الخلاصة: لا تنتظر حتى تظهر علامات الهجوم

ثغرتا PHP المنشورتان في 21 أكتوبر 2026 تمثلان خطرًا جديًا لأنهما قد تتيحان تنفيذ تعليمات عن بُعد دون مصادقة، ولأن الخلل يقع في وقت التشغيل الذي تعتمد عليه تطبيقات كثيرة. حدّد جميع البيئات المتأثرة، وثبّت الإصدار المصحح المناسب، وأعد تشغيل الخدمات، ثم تحقق من نسخة الويب وراقب السجلات. إذا لم تستطع التحديث فورًا، فاطلب دعم مزود الاستضافة وقلل التعرض وفق الإرشادات الرسمية، مع اعتبار ذلك إجراءً مؤقتًا فقط.

المصادر الأساسية للمراجعة هي موقع PHP الرسمي ونشرات الجهات الوطنية للأمن السيبراني. كما يفيد الاطلاع على دليل الأمن السيبراني وحماية البيانات والحسابات والشبكات ودليل تقييم تحديثات البرمجيات قبل الإنتاج لبناء عملية تحديث واختبار أكثر انضباطًا.

قائمة مراجعة سريعة لمدير الموقع

لتسهيل التنفيذ، حوّل التنبيه الأمني إلى مهمة لها مسؤول وموعد واضح. ابدأ بالمواقع التي تستقبل طلبات من الإنترنت وتحتوي على بيانات حساسة أو عمليات دفع أو حسابات مستخدمين. سجّل اسم الخادم، وطريقة تشغيل PHP، والنسخة الحالية، والنسخة المستهدفة، ووقت التحديث، ونتيجة الاختبار. إذا كانت لديك بيئات كثيرة، استخدم جردًا مركزيًا بدل الاعتماد على ذاكرة كل مطور.

قبل التحديث، أخبر فريق الدعم إذا كان هناك احتمال لتأثر الخدمة، وحدد فترة صيانة عند الحاجة. بعد التحديث، اختبر الوظائف الحرجة من منظور المستخدم، وتأكد من عدم ظهور أخطاء جديدة في السجلات. احتفظ برقم الإصدار المصحح كدليل في سجل التغيير، وحدّث إجراءات إعداد الخوادم حتى لا تُنشأ بيئة جديدة باستخدام صورة قديمة.

ولا تتعامل مع تنبيه الثغرة باعتباره مهمة لمرة واحدة فقط. اجعل مراجعة الإصدارات الأمنية جزءًا من دورة التشغيل: اشترك في إعلانات PHP ومزود نظام التشغيل والاستضافة، وراقب مواعيد انتهاء الدعم، وجرّب تحديثات الأمان في بيئة اختبار قصيرة العمر قبل نشرها على الإنتاج متى سمح مستوى الخطورة بذلك. في الحالات الحرجة، يجب أن يكون الاختبار سريعًا ومتناسبًا مع الخطر، لا سببًا لتأجيل غير محدود.

وأخيرًا، احتفظ بمرجع رسمي للتحديثات ولا تعتمد على منشورات متداولة وحدها. راجع إعلان PHP وتأكد من أن رقم الإصدار يطابق الفرع الذي تستخدمه، لأن الأرقام المصححة تختلف بين الفروع. وإذا كان مزود الخدمة يدير المحرك نيابة عنك، فاطلب تأكيدًا صريحًا بأن التحديث وصل إلى بيئة الويب وليس إلى نسخة CLI فقط.

راجع كذلك سجل التغييرات واحتفظ باسم الحزمة ورقم البناء وتاريخ إعادة تشغيل الخدمات، حتى يستطيع الفريق لاحقًا إثبات ما تم تحديثه ومتى. وإذا كانت لديك بيئة لا يمكن ترقيتها فورًا بسبب اعتماد قديم، فوثّق الاستثناء والمالك والموعد النهائي وخطة العزل، ولا تترك القرار مفتوحًا بلا متابعة.

تذكّر أن مسؤولية التحديث مشتركة بين مالك الموقع والمطور ومزود الاستضافة، لكن يجب أن يكون هناك طرف محدد يتابع التنفيذ حتى النهاية. لا تعتبر المهمة مكتملة إلا بعد التحقق من النسخة المصححة في الخدمة الفعلية وتوثيق نتيجة الفحص.

مقالات ذات صلة

SHARE شارك المقال
عبدالرحمن ربيع علي
كتبه

عبدالرحمن ربيع علي

Software Engineer & AI Builder

مطور برمجيات متكامل ومصمم جرافيك مع أكثر من 4 سنوات خبرة في بناء تطبيقات الويب الحديثة باستخدام PHP و JavaScript و HTML و CSS. خلفية قوية في تصميم UI/UX واستخدام متقدم لأدوات الذكاء الاصطناعي لتعزيز كفاءة التطوير والأتمتة واتخاذ القرارات. حاصل على ماجستير تنفي...

وسوم المقال

مصادر وروابط خارجية

COMMENTS

التعليقات (0)

كن أول من يعلّق على هذا المقال.

أضف تعليقك

يظهر تعليقك بعد المراجعة.