المدونة / شرح ثغرات CVE

بعد React2Shell: ثلاثة حدود أمنية لمراجعة مكونات الخادم

منهج تقني لمراجعة React2Shell وCVE-2026-23864: افصل سلامة فك الترميز عن الصلاحيات وحدود استهلاك الموارد، ثم تحقّق من البناء المنشور.

أكملت دراسة الدكتوراه في أمن المعلوماتاجتزت المناقشة الجامعية · المناقشة النهائية للأطروحة لم تُجرَ بعد

الخطأ المكلف: اعتبار الرقعة الأمنية تقييماً كاملاً

أُعلن عن React2Shell، المسجلة باسم CVE-2025-55182، في 3 ديسمبر 2025 بوصفها ثغرة في React Server Components تتيح تنفيذ شيفرة عن بُعد دون مصادقة. تنسب React اكتشافها إلى لاكلان ديفيدسون. ويصنّف التنبيه الرسمي المشكلة ضمن إلغاء التسلسل غير الآمن. [1، 6]

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

حدّد التأثر من النظام المنشور، لا من اسم المنتج

احصر تكامل RSC والإصدارات التي حُلّت فعلياً من حزم react-server-dom-webpack أو react-server-dom-parcel أو react-server-dom-turbopack. تطبيق React الذي لا ينفّذ شيفرة على الخادم أو لا يستخدم تكاملاً يدعم RSC خارج نطاق التنبيه الأصلي. وعدم كتابة Server Function صراحةً لا يثبت وحده أن نظاماً منشوراً يدعم RSC غير متأثر. [1]

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

الحد الأول: يجب أن تتحول البايتات إلى قيم مقبولة

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

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

HTTP input
  -> [1] decode into permitted values
  -> [2] authorize the requested operation
  -> [3] execute within an explicit work budget
  -> produce a permitted response

Review invariants:
  malformed input -> bounded rejection
  unauthorized operation -> no state change
  excessive work -> bounded termination
  error response -> no sensitive implementation data

الحد الثاني: إمكانية استدعاء الدالة لا تعني الإذن بالعملية

تشرح وثائق React Server Functions كيف تتحول استدعاءات العميل إلى طلبات شبكة تستدعي شيفرة الخادم. هذه القدرة على النقل لا توفر صلاحيات منتجك على مستوى الكائن. [5] في دالة تعدّل فاتورة، يجب أن يحدد الخادم هوية المستدعي، والجهة المستأجرة التي تملك الفاتورة، وما إذا كان لهذا المستخدم إذن بإجراء هذا الانتقال المحدد في الحالة.

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

الحد الثالث: المدخل الصحيح قد يطلب عملاً غير مقبول

تشمل CVE-2026-23864، التي أُعلن عنها في 26 يناير 2026، حالات إضافية لحجب الخدمة في RSC. يصف القائمون على المشروع نتائج منها الاستهلاك المفرط للمعالج ونفاد الذاكرة وانهيار العملية. [3] وتوضح React أن هذه المشكلات اللاحقة لم تُعد فتح ثغرة تنفيذ الشيفرة عن بُعد في React2Shell. ميّز بين الخصائص الأمنية التي تعالجها كل رقعة. [2]

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

افحص رد الإنتاج وما يحتويه البناء المجمّع

تتعلق CVE-2025-55183 بكشف الشيفرة المصدرية في إعدادات محددة لـServer Functions. يصف التنبيه خطراً على الأسرار المكتوبة داخل الشيفرة المكشوفة؛ لكنه لا يثبت تسريباً عاماً لقيم متغيرات البيئة وقت التشغيل عبر هذه الثغرة تحديداً. وقد يؤثر تضمين الدوال بواسطة أداة التجميع في الشيفرة الظاهرة داخل ناتج بناء الإنتاج. [4، 2]

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

أنشئ سجل حدود يستطيع مطوروك إعادة استخدامه

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

يذكر تنبيه يناير 2026 الإصدارات 19.0.4 و19.1.5 و19.2.4 بوصفها إصلاحات لحزم RSC التي يشملها. هذه عتبات إصلاح تاريخية، وليست توصية بتثبيت النظام على تلك الإصدارات إلى الأبد أو ادعاءً بعدم وجود تنبيهات أحدث. [3] اختر إصداراً مدعوماً ومصححاً حالياً من إطار العمل، ثم أعد البناء والنشر وتحقق من الحزم المحلولة والسلوك المعني في ناتج البناء نفسه.

route_id | deployed_build | package_versions
principal | tenant | object | requested_operation
input_class | expected_result | observed_result
cpu_time | peak_memory | downstream_calls
state_before | state_after | reviewer | evidence_ref

ما الذي ينبغي أن يحصل عليه صاحب المنتج من تقييم مفيد؟

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

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

المصادر

ناقش هذا النوع من المراجعة

الخدمات
جميع المقالات