
استغلال لإثبات المفهوم لـ CVE-2025-55182 (React2Shell)، وهو ثغرة حرجة لتنفيذ التعليمات البرمجية عن بُعد قبل المصادقة في مكونات خادم React. يوضح إلغاء التسلسل غير الآمن في بروتوكول Flight للاختبار الأمني المصرح به والتعليم.
أداة إثبات مفهوم لإظهار ثغرة React2Shell الحرجة (CVE-2025-55182 / CVE-2025-66478) على بيئات اختبار محلية مصرح بها فقط.
هذه الثغرة (CVSS 10.0) يتم استغلالها بنشاط من قبل جهات تهديد متطورة. أفادت استخبارات التهديدات من أمازون أن عدة مجموعات ترعاها دولة مرتبطة بالصين، بما في ذلك Earth Lamia وJackpot Panda، بدأت في تسليح الاستغلالات العامة في غضون ساعات من الإفصاح. أضافتها وكالة الأمن السيبراني وأمن البنية التحتية الأمريكية (CISA) إلى كتالوج الثغرات المستغلة المعروفة (KEV).
CVE-2025-55182 (React2Shell) هي ثغرة حرجة لتنفيذ التعليمات البرمجية عن بُعد (RCE) قبل المصادقة في بروتوكول "Flight" لمكونات خادم React (RSC). تم تعيين معرف منفصل، CVE-2025-66478، لـ Next.js ولكن تم رفضه لاحقًا باعتباره مكررًا لـ CVE-2025-55182، حيث يشتركان في نفس السبب الجذري.
chmod +x pwn-nextjs.sh
./pwn-nextjs.sh [TARGET_URL] [COMMAND]
# استهداف عنوان URL محدد
./pwn-nextjs.sh https://vulnerable-app.example.com "whoami"
root
تنشأ الثغرة في حزم React محددة، مما يؤثر على أي إطار عمل يدمجها.
غير متأثر: Next.js 13.x، وإصدارات Next.js 14.x المستقرة، وتطبيقات Pages Router، وبيئة تشغيل Edge غير متأثرة.
يقوم بروتوكول RSC Flight بتسلسل البيانات للتواصل بين العميل والخادم. تكمن الثغرة في منطق إلغاء التسلسل على الخادم، والذي يقوم بتوسيع خصائص الكائن من الحمولة الواردة دون التحقق الكافي. هذا يسمح للمهاجم بحقن مفاتيح ضارة (مثل __proto__ أو constructor) في الطلب، مما يؤدي إلى تلوث النموذج الأولي.
بمجرد تلوث سلسلة النموذج الأولي، يتبع الخادم مسارات تنفيذ متأثرة بالمهاجم. يمكن دمج هذا لتنفيذ كود JavaScript عشوائي بامتيازات الخادم، مما يؤدي إلى تنفيذ تعليمات برمجية عن بُعد كامل (RCE).
لاحظ باحثو الأمن استغلالات ناجحة أدت إلى:
.aws/credentials).التصحيح إلزامي وهو الطريقة الوحيدة للقضاء التام على الثغرة. لا يوجد إعداد تكوين لتعطيل مسار الكود الضعيف.
# لمستخدمي Next.js، قم بالترقية إلى أحدث إصدار مُصحح في خط الإصدار الخاص بك.
# مثال: إذا كنت تستخدم Next.js 15.5.x:
npm install [email protected]
# تأكد أيضًا من تحديث تبعيات React:
npm install react@latest react-dom@latest
تحقق من أن ملفات package-lock.json أو yarn.lock الخاصة بك تعكس إصدارات حزمة react-server-dom-* المصححة (19.0.1 أو 19.1.2 أو 19.2.1).
أثناء التصحيح، قم بنشر قواعد جدار الحماية لتطبيقات الويب (WAF) لحظر محاولات الاستغلال:
AWSManagedRulesKnownBadInputsRuleSet (الإصدار 1.24+) تتضمن قواعد لـ CVE هذا.cve-canary مهيأة مسبقًا متاحة.ملاحظة: قواعد WAF هي تخفيف مؤقت غير كامل. إنها لا تحل محل الحاجة إلى التصحيح.
راجع السجلات بحثًا عن هذه العلامات لمحاولات الاستغلال:
next-action أو rsc-action-id. نصوص الطلب تحتوي على أنماط مثل $@ أو "status":"resolved_model".whoami، id، uname)، قراءة /etc/passwd، أو كتابة ملفات إلى /tmp/ (على سبيل المثال، pwned.txt) بواسطة عمليات Node.js.توضح هذه الأداة ثغرة ذات درجة CVSS 10.0 (أقصى خطورة) التي يتم استغلالها بنشاط من قبل جهات ترعاها دولة.
تذكر: توضح هذه الأداة سبب كون التصحيح عاجلاً. استخدم هذه المعرفة لتحسين الأمان وحماية الأنظمة، وليس لاختراقها. تأكد من تحديث جميع تبعياتك إلى الإصدارات المُصححة المذكورة أعلاه.
| المكون | الإصدارات المتأثرة | الإصدارات المُصححة | ملاحظات |
|---|
| حزم React ( react-server-dom-webpack، -parcel، -turbopack) | 19.0.0، 19.1.0، 19.1.1، 19.2.0 | 19.0.1، 19.1.2، 19.2.1 | مصدر الخلل في المنبع. |
| Next.js (موجه التطبيق) | 15.x، 16.x، 14.3.0-canary.77 والإصدارات الأحدث | 15.0.5، 15.1.9، 15.2.6، 15.3.6، 15.4.8، 15.5.7، 16.0.7 | الإطار الأساسي المتأثر. |
| أطر عمل أخرى | React Router، Waku، RedwoodJS، Parcel (@parcel/rsc)، إضافة Vite RSC | التحديث إلى إصدارات تستخدم حزم React المصححة (>19.0.1، 19.1.2، 19.2.1). | عرضة للخطر إذا كانت تستخدم حزم React المتأثرة. |