ثغرتان أمنيتان (CVEs) تم الكشف عنهما حديثاً—CVE-2025-55182 في React Server Components وCVE-2025-29927 في Next.js middleware—تفتحان مساراً لتنفيذ التعليمات البرمجية عن بُعد (remote-code execution) وتجاوز المصادقة (authentication bypass) في مجموعات تقنيات JavaScript الحديثة. يمكن لطلب واحد فقط أن يؤدي إلى تفعيل هذه الثغرات؛ ولا يمكن للإعدادات وحدها إيقافها. يجب على الفرق التي تعتمد على React Server Components أو Next.js middleware التعامل مع هذه الأخطاء البرمجية كحالات طارئة ودفع التحديثات (patches) فوراً.

لماذا تُعد الضوضاء في السجلات مضللة

قمنا بسحب سجلات الحافة (edge logs) لمدة شهر من موقع Next.js يعمل في بيئة الإنتاج. احتوت المجموعة على 8,900 طلب تم تصنيفها على أنها خبيثة. فشل كل طلب منها تقريباً في القفزة الأولى. كان الرابط الأكثر شيوعاً هو /wp-admin/install.php والذي تم الوصول إليه 518 مرة، على الرغم من أن الموقع لا يعمل بنظام WordPress، ولا يستخدم PHP، ولا يحتوي على أي ملفات WordPress.

تقوم الماسحات الضوئية الآلية بتوليد هذه الحركة المرورية. فهي تنشر التخمينات عبر الإنترنت، بحثاً عن:

  • الأسرار وملفات الإعدادات – 64% من المحاولات
  • لوحات تحكم PHP والقذائف (shells) – 22%
  • مسارات WordPress – 11%
  • أدوات قواعد البيانات – 1%

إن العدد المرتفع للطلبات المحظورة يخبرك فقط بأنك لا تشغل البرامج التي تتوقعها برامج البوتات. وهو لا يضمن أن التطبيق الذي تشغله بالفعل آمن.

الهجمات الهادئة على مستوى إطار العمل

عندما يستهدف المهاجم تطبيق Next.js، تبدو حركة المرور مثل طلبات المستخدم العادية، حيث يستخدم آليات إطار العمل نفسه ضده.

React2Shell (CVE-2025-55182)

تسمح ثغرة في React Server Components للمهاجم بحقن حمولة (payload) مصممة خصيصاً يقوم الخادم بتقييمها ككود برمجي. والنتيجة هي تنفيذ كامل للتعليمات البرمجية عن بُعد دون الحاجة إلى تجاوز جدار الحماية أو مرشح تطبيقات الويب (web-application filter). تكمن الثغرة داخل إطار العمل؛ والحل الوحيد هو الترقية إلى إصدار يحتوي على الإصلاح.

تجاوز مصادقة Middleware (CVE-2025-29927)

يمكن لـ Next.js middleware فرض فحوصات أمنية بناءً على ترويسات الطلب (request headers). تُظهر هذه الثغرة (CVE) أن المهاجم يمكنه تقديم ترويسة داخلية معينة ويجعل الـ middleware يتخطى تلك الفحوصات تماماً. من الخارج، يبدو الطلب عادياً، مما يجعل اكتشافه صعباً.

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

ما هي المخاطر

  • المطورون الذين يتعاملون مع تحديثات إطار العمل كأمر اختياري يخاطرون بالاستيلاء الكامل على خوادمهم.
  • فرق العمليات التي تعتمد على الإعدادات الثابتة لتحصين مجموعة التقنيات (stack) لا يمكنها الحماية من الكود الذي يعمل داخل إطار العمل نفسه.

قائمة مرجعية عملية للدفاع

  1. نظافة النشر (Deployment hygiene) – لا ترسل الأسرار في ملفات مثل .env. قم بتخزينها في متغيرات البيئة التي يتم توفيرها أثناء وقت التشغيل أو في نظام مخصص لإدارة الأسرار.
  2. تقليل سطح الهجوم (Minimal attack surface) – قم بإيقاف ميزات إطار العمل التي لا تستخدمها. افرض سياسة أمان محتوى (Content-Security-Policy) صارمة تمنع تحميل البرامج النصية غير المصرح بها.
  3. الترقيع السريع (Rapid patching) – قم بأتمتة خط أنابيب البناء (build pipeline) بحيث يمكن اختبار إصدار إطار العمل الجديد ونشره في غضون ساعات من إصداره. تعامل مع التحديثات الأمنية كجزء منتظم من دورة الإصدار، وليس كفكرة ثانوية.

ما يجب مراقبته لاحقاً

  • اشترك في خلاصات التنبيهات الأمنية الرسمية لـ React وNext.js وأي مكتبات وقت تشغيل (runtime libraries) أخرى تعتمد عليها.
  • قم بدمج ماسحات الثغرات التي تفهم البيانات الوصفية لحزم JavaScript، بحيث يؤدي نشر CVE جديد إلى إطلاق تنبيه تلقائي.
  • قم ببناء خط أنابيب نشر جاهز للتراجع (rollback-ready)؛ فإذا تسبب التحديث في حدوث تراجعات (regressions)، يمكنك التراجع بسرعة دون ترك النظام مكشوفاً.

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