
إثباتات مفهوم أصلية لثغرة React2Shell (CVE-2025-55182)، توضح تنفيذ الأكواد عن بُعد في تطبيقات Next.js عبر ثغرات تحليل أجزاء Webpack.
بما أن PoCs العامة يتم تداولها وماسح Google يستخدم نسخة مختلفة من PoC الأصلي الذي قدّمته، فقد حان الوقت أخيرًا لمشاركة PoCs الأصلية الخاصة بي لـ React2Shell.
يحتوي هذا المستودع على 3 PoCs:
00-very-first-rce-poc - أول PoC تمكنت من تطويره لـ RCE. يعمل مباشرة فقط على إصدارات التطوير من مواقع Next.js التي تستخدم Webpack.01-submitted-poc.js (الرئيسي) - نفس الـ PoC الذي قدّمته إلى Meta، أبسط وأكثر فعالية02-meow-rce-poc - الـ PoC الذي تم تجزئته ونشره كدليل من قبل Sylvie في 29 نوفمبر، قبل وقت قصير من الإفصاح الأولي إلى Metaشرح العديد من الأشخاص الآخرين PoCs الخاصة بهم، لكن إليك شرح موجز جدًا مني:
$@x يمنحك الوصول إلى Chunkthen الخاصة به على كائن خاص بنا.then)Chunk مزيف خبيث_response يسمح لنا بالوصول إلى عدد كبير من الأدوات (gadgets) عند حدوث ذلكقد تلاحظ أن PoC الخاص بي يحتوي على شيء غريب في then. كانت هذه بدائية لطيفة استخدمتها لـ 'تسلسل' عدة chunks معًا، حيث يتم تمرير resolve إلى Array.map للسماح لي بـ 'القفز' إلى chunk آخر معرّف في $0.
الـ PoC المعاد إنشاؤه والمتداول علنًا لا يفعل ذلك، لأنه ليس ضروريًا عند القيام بقفزة واحدة فقط. كان من الجيد أن أرى أن الـ PoC المعاد إنشاؤه استخدم فيما عدا ذلك نفس أداة _formData التي استخدمها خاصتي - لكن PoC 00- هو رحلة جامحة، إذا تجرأت على محاولة قراءته :)
قريبًا.