تحديثات أمنية حرجة لـ PHP وNode.js: ما فعلناه وما عليك فعله

Patrick Wunderlin
Patrick Wunderlin
تحديثات أمنية حرجة لـ PHP وNode.js: ما فعلناه وما عليك فعله

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

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

أما إذا كان موقعك أو تطبيقك يعمل على PHP أو Node.js، فتابع القراءة وطبّق التحديث اليوم.

الخلاصة

الإصدار المطلوب

مستوى الخطورة

PHP

8.5.12 أو 8.4.27 أو 8.3.36 أو 8.2.35 (أو الحزمة التي وفّرها المورّد وتتضمن الإصلاح)

حرج (CVSS 9.2)، تنفيذ تعليمات برمجية عن بُعد دون مصادقة

Node.js

26.12.1 أو 24.22.1 أو 22.23.4

مرتفع

  • تستخدم WordPress أو Magento أو Drupal أو Laravel أو أي تطبيق آخر مبني على PHP؟ إذن موقعك يعمل على PHP. حدّثه الآن.

  • تستخدم استضافة مشتركة أو مُدارة؟ مزوّد الاستضافة هو المسؤول عن تطبيق إصلاح PHP. تأكّد من أنه طبّقه.

  • بعد تحديث PHP، أعد تشغيل PHP-FPM أو Apache، وإلا فسيظل الإصدار القديم قيد التشغيل.

  • تستخدم إصدارًا انتهى دعمه، مثل PHP 8.1 أو أقدم، أو Node.js 25 أو 23 أو 20 أو أقدم؟ لن يصدر له إصلاح رسمي. خطّط للانتقال إلى إصدار مدعوم.


ما الذي حدث؟

PHP: ثغرتا "PHP2Shell" ‏(CVE-2026-109618 وCVE-2026-109619)

أصدر فريق PHP إصلاحات لثغرتين حرجتين، حصلت كلٌّ منهما على تقييم 9.2 وفق مقياس CVSS v4.0:

  • CVE-2026-109618: تتيح تنفيذ تعليمات برمجية عن بُعد نتيجة فساد الذاكرة عند نفاد الذاكرة المتاحة لـ PHP أثناء معالجة طلب.

  • CVE-2026-109619: تتيح تنفيذ تعليمات برمجية عن بُعد بسبب بقاء حالة عامة قديمة في الذاكرة.

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

تتأثر جميع فروع PHP المدعومة، في الإصدارات السابقة لـ 8.2.35 و8.3.36 و8.4.27 و8.5.12.

Node.js: التحديث الأمني لشهر أكتوبر 2026

أصدر Node.js إصلاحات لفروع الإصدارات 26.x و24.x و22.x، تعالج 10 ثغرات، منها 4 مصنّفة بمستوى خطورة مرتفع. أبرزها:

  • CVE-2026-111497: كتابة خارج حدود الذاكرة المخصّصة في أداة فك ضغط Brotli، قد تتيح تنفيذ تعليمات برمجية عن بُعد. قد يتعرّض تطبيقك لها بمجرد استدعاء fetch() للاتصال بخادم يُرجع بيانات مضغوطة بصيغة Brotli.

  • CVE-2026-105483 / CVE-2026-106069: تتيحان تجاوز التحقّق من اسم المضيف في TLS باستخدام صيغ غير معتادة لعناوين IP.

  • CVE-2026-105482: قد تستعلم dns.resolve عن اسم مختلف عن الاسم الذي تحقّقت منه شيفرتك.

ما الذي فعلناه؟

طبّقنا التحديثين اليوم على كامل البنية التحتية لـ WireBoard. لم تتوقف الخدمة، ولم تتأثر أي بيانات، ولن يتغيّر شيء في طريقة استخدامك لـ WireBoard.

هل أنت معنيّ بهذه التحديثات؟

عليك اتخاذ إجراء إذا كان موقعك أو تطبيقك أو خادمك يستخدم:

  • PHP، سواء مباشرة أو عبر نظام إدارة محتوى أو إطار عمل مثل WordPress أو WooCommerce أو Magento أو Drupal أو Joomla أو Laravel أو Symfony.

  • Node.js، مثل تطبيقات Next.js أو Nuxt أو Express أو NestJS، أو أي خدمة خلفية أو خادم بناء يعمل على Node.

لست متأكدًا؟ اسأل المطوّر أو مزوّد الاستضافة. يكفي أن تسأله: «هل يعمل موقعنا على PHP أو Node.js؟ وهل طُبّق عليه التحديث الأمني الصادر اليوم؟»

كيف تتحقق من إصدارك؟

PHP

المهم هو الإصدار الذي يستخدمه خادم الويب. فالأمر php -v في الطرفية يعرض إصدار PHP الخاص بسطر الأوامر، وقد يكون مختلفًا.

  1. أنشئ ملفًا باسم info.php في المجلد الجذري لموقعك، وضع فيه <?php phpinfo();

  2. افتح الملف في المتصفح وتحقّق من إصدار PHP (PHP Version) أعلى الصفحة.

  3. احذف الملف فور الانتهاء، لأنه يكشف إعدادات الخادم كاملة.

تعرض أيضًا كثير من لوحات تحكّم الاستضافة، مثل cPanel وPlesk، إصدار PHP المستخدم.

ملاحظة بشأن حزم توزيعات Linux: غالبًا ما تدمج Ubuntu وDebian وRHEL وغيرها الإصلاح في حزمها الحالية دون تغيير رقم الإصدار. في هذه الحالة، ابحث عن معرّفات CVE في سجل تغييرات الحزمة بدلًا من الاعتماد على رقم الإصدار (انظر أدناه).

Node.js

node -v

يكون الإصلاح مطبّقًا إذا ظهرت النتيجة v26.12.1 أو v24.22.1 أو v22.23.4، أو إصدار أحدث ضمن الفرع نفسه.

كيفية تحديث PHP

اتّبع القسم الذي يناسب طريقة تثبيت PHP على خادمك.

الاستضافة المشتركة أو المُدارة

يتولّى مزوّد الاستضافة إدارة PHP وتطبيق الإصلاح. راجع صفحة حالة الخدمة أو الإعلانات، ثم تحقّق من الإصدار باستخدام phpinfo() كما سبق. إذا كانت لوحة التحكّم تتيح اختيار إصدار PHP وكنت تستخدم 8.1 أو أقدم، فانتقل إلى 8.2 أو أحدث بعد التأكّد من توافق نظام إدارة المحتوى والإضافات معه.

Ubuntu / Debian

sudo apt update
# replace 8.3 with the PHP branch you use
sudo apt install --only-upgrade 'php8.3-*'

# confirm the fix is included
apt changelog php8.3-fpm | grep -E 'CVE-2026-10961(8|9)'

إذا لم يُظهر الأمر الأخير أي نتيجة، فالإصلاح لم يصل بعد إلى مستودع توزيعتك. راجع إشعارات Ubuntu الأمنية أو متتبّع الأمان في Debian، وحاول لاحقًا. وإذا كنت تستخدم حزم PHP التي يوفّرها Ondřej Surý، فحدّثها من مستودعه بالطريقة نفسها.

RHEL / AlmaLinux / Rocky Linux

dnf module list php          # see which PHP stream you're on
sudo dnf upgrade 'php*'

# confirm the fix is included
rpm -q --changelog php-fpm | grep -E 'CVE-2026-10961(8|9)'

إذا كنت تستخدم مستودع Remi، فحدّث الحزم منه.

Docker

سحب صورة جديدة لا يحدّث الحاويات التي تعمل بالفعل. اسحب الصورة، ثم أعد البناء وإنشاء الحاويات:

docker pull php:8.3-fpm        # use your tag
docker compose build --pull
docker compose up -d

ولمزيد من الاطمئنان، حدّد الإصدار الذي يتضمن الإصلاح صراحةً في ملف Dockerfile، مثل FROM php:8.3.36-fpm.

التثبيت من الشيفرة المصدرية أو على Windows

نزّل الإصدار الذي يتضمن الإصلاح من php.net/downloads.

ثم أعد تشغيل PHP

يسهل إغفال هذه الخطوة. فالعمليات الجارية تواصل استخدام إصدار PHP القديم حتى تُعاد تهيئتها بالتشغيل من جديد:

# PHP-FPM (Debian/Ubuntu; replace 8.3 with your branch)
sudo systemctl restart php8.3-fpm

# PHP-FPM (RHEL family)
sudo systemctl restart php-fpm

# Apache with mod_php
sudo systemctl restart apache2   # or httpd on RHEL

ثم تحقّق مجددًا باستخدام phpinfo() للتأكّد من أن الإصدار الجديد قيد التشغيل.

«هل يكفي تغيير أحد الإعدادات؟»

لا. انتشرت في البداية حلول مؤقتة، مثل تعطيل session.upload_progress.enabled، لكنها لا تفعل أكثر من تقليل الخطر. وقد أكّد أحد مطوّري نواة PHP علنًا أن تحديث PHP هو الحل الفعلي الوحيد. إذا طبّقت حلًا مؤقتًا، فأبقِه حتى تنتهي من التحديث، لكن لا تكتفِ به.

كيفية تحديث Node.js

طريقة التثبيت

طريقة التحديث

nvm

نفّذ nvm install 24 (أو 22 / 26)، ثم nvm alias default 24

برنامج التثبيت الرسمي

نزّل أحدث إصدار ضمن الفرع الذي تستخدمه من nodejs.org/en/download

Docker

حدّد وسم الإصدار الذي يتضمن الإصلاح، مثل FROM node:24.22.1، ثم نفّذ docker pull وأعد البناء. قد يظل وسم غير مثبّت على إصدار محدّد، مثل node:24، يستخدم صورة قديمة إذا أعدت البناء من صورة مخزّنة مؤقتًا.

Homebrew

نفّذ brew update && brew upgrade node (أو node@24 / node@22). قد يتأخر توفّر التحديث في Homebrew بضع ساعات، لذا استخدم nvm أو برنامج التثبيت إن لم يكن بوسعك الانتظار.

مدير الحزم في Linux

حدّث كالمعتاد عبر مستودع توزيعتك أو مستودع NodeSource.

منصة استضافة (Vercel أو Netlify أو Heroku أو Render وغيرها)

راجع إعدادات بيئة التشغيل وإعلانات المنصة. تطبّق معظم المنصات الإصلاحات على بيئات التشغيل تلقائيًا، لكن قد تحتاج إلى إعادة نشر التطبيق.

بعد التحديث، أعد تشغيل تطبيقك (أو أعد نشره)، وتحقّق من الإصدار باستخدام node -v.

إذا كنت تستخدم إصدارًا انتهى دعمه

تقتصر الإصلاحات الرسمية على الإصدارات المدعومة:

  • PHP: الإصدارات 8.2 و8.3 و8.4 و8.5. لن تصدر تحديثات رسمية لـ PHP 8.1 أو أقدم. تدمج بعض توزيعات Linux ومزوّدي الدعم الممتد المدفوع الإصلاحات في الإصدارات القديمة، فتحقّق لدى مزوّدك. وإلا، فالخيار الآمن هو الترقية إلى فرع مدعوم. وانتبه إلى أن دعم PHP 8.2 بالإصلاحات الأمنية ينتهي في 31 ديسمبر 2026.

  • Node.js: الفروع 22.x و24.x و26.x. انتهى دعم فروع مثل 25 و23 و20، ولن تحصل على إصلاح.

إذا تعذّرت الترقية فورًا، ففكّر في حماية الموقع بجدار حماية لتطبيقات الويب أو تقييد الوصول إليه حتى تتمكّن من الترقية.

للمزيد

التنبيهات الرسمية

أدلة مفيدة

شارك المقال
تم النسخ!
Patrick Wunderlin

بقلم

Patrick Wunderlin

مؤسس WireBoard.io. مهندس حاسوب خريج EPFL، شغوف بتحليلات الويب ومعالجة البيانات اللحظية وبناء أدوات تساعد الشركات على النمو.

تقلبات الترتيب مستمرة، لكن هل يضلّلك متتبّع ترتيب موقعك؟
SEO اليومي ·

تقلبات الترتيب مستمرة، لكن هل يضلّلك متتبّع ترتيب موقعك؟

هل يضلّلك متتبّع ترتيب موقعك؟ تشهد نتائج Google تقلبات منذ نحو شهر. ومنذ أواخر سبتمبر، تتراوح مؤشرات التقلب اليومية بين المتوسطة والمرتفعة، وبلغت ذروتها مطلع أكتوبر عند نحو 7.9....

تأخيرات محلية وتنظيف عناوين URL في المشهد المتوقع
SEO اليومي ·

تأخيرات محلية وتنظيف عناوين URL في المشهد المتوقع

الترتيب يهدأ، لكن التقلّبات لم تختفِ بعد طقس SEO اليوم windy-cloud، ليس فوضى، لكنه لم يستقرّ تمامًا. منذ 23 سبتمبر والتقلّبات تدور في نطاق متوسط إلى مرتفع، وخلال الأسبوع الماضي ظلّ المؤشر قرب...

ضباب بحث AI يَزداد، والزَّخم في الترتيب يَهدأ
SEO اليومي ·

ضباب بحث AI يَزداد، والزَّخم في الترتيب يَهدأ

روابط AI تُصبِح أكثر أهميّة أبرز ما يلفت الآن هو الظهور داخل AI Search. وأعلنت Google في 15 أكتوبر أنّ AI Mode وAI Overviews سيعرضان روابط أكثر داخل النّص، وفي مواقع أوضح، مع كتل للمواقع الرّسميّة، ودوّارات للمقالات الحديثة، وملفّات قابلة للنّقر لصنّاع المحتوى والناشرين...

WireBoard

تتبَّع موقعك في الوقت الفعلي

Dashboards مباشرة تبنيها بنفسك. ابدأ مجانًا. دون بطاقة ائتمان ودون عناء.