- بواسطة x32x01 ||
⚠️ ثغرة خطيرة جدًا في Next.js و React Server Components ممكن تفتح سيرفرك للهاكرز!
لو موقعك مبني بـ Next.js أو شغال بـ React Server Components (RSC)، فـ لازم تاخد بالك جدًا إن في ثغرة جديدة اتصنفت 10/10 من ناحية الخطورة!
الثغرة دي اسمها CVE-2025-55182، وبتسمح للهاكر إنه ينفّذ أوامر على السيرفر بتاعك وكأنه قاعد عليه بنفسه!
يعني باختصار:
الهاكرز ممكن يتحكموا في السيرفر بالكامل من غير باسورد ولا دخول فعلي 😨
الموضوع حرفيًا يعتبر كارثة أمنية لأي موقع بيستخدم Next.js أو RSC بالشكل الحالي لو مش محدّث.
ودي ببساطة معناها إن حد يبعت Request معمول بذكاء للموقع بتاعك، والسيرفر للأسف ينفّذ اللي فيه كأنه كود عادي من عندك.
تخيل كده؟
هاكر يبعت طلب… السيرفر ينفّذ:
السيرفر بياخد:
السيرفر بيجهز البيانات في شكل "باكدج" سهلة النقل.
المشكلة؟
إن عملية الـ Deserialization كانت بتثق في البيانات اللي جاية… ودي غلطة كبيرة جدًا.
ولأن Next.js و React كانوا بيثقوا في البيانات بشكل زيادة…
لما يحاولوا يعملوا Deserialization، بدلاً من إنه يعمل Object… يروح مشغّل كود!
يعنى بدل ما يبني بيانات…
بيشغّل أوامر! 😨💣
وده بالظبط اللي بيسمّوه:
📌 Object Injection → Code Execution
📌 Deserialization Attack → RCE
وده مثال توضيحي، مش نفس الثغرة لكن نفس الفكرة 👆
السيرفر لما يفك البيانات… يفتكر إن "exec" جزء من object formatting ويشغّل الأمر!
وهنا الكارثة:
لو بتستخدم أي من دول:
✔️ Next.js 15 قبل 15.0.5
✔️ Next.js 16 قبل 16.0.7
✔️ React Server Components قبل 19.0.1
يبقى آه… موقعك معرّض للهجوم!
➡️ 15.0.5 أو أعلى
➡️ 16.0.7 أو أعلى
➡️ 19.0.1 أو أعلى
لو الإصدار أقل من اللي فوق… يبقى لازم تحديث فورًا 🔥
✔️ اقفل أي Endpoint مش محتاجه
✔️ متثقش في أي Input مهما كان
✔️ استخدم Security Headers
✔️ شغّل TypeScript Strict Mode
✔️ استخدم ESLint security rules
دي معرّضة آلاف المواقع للاختراق الكامل بسبب ثقة زيادة في بيانات جاية من العميل أثناء Deserialization.
لو موقعك مبني بـ Next.js أو RSC، لازم لازم تحدّث فورًا قبل ما حد يستغل الثغرة عليك.
ومهم جدًا تتابع تحديثات الأمن من Next.js باستمرار، لأن الثغرات دي بتطلع كل فترة.
وخليك فاكر:
الأمان مش اختيار… الأمان جزء أساسي من الكود.
لو موقعك مبني بـ Next.js أو شغال بـ React Server Components (RSC)، فـ لازم تاخد بالك جدًا إن في ثغرة جديدة اتصنفت 10/10 من ناحية الخطورة!
الثغرة دي اسمها CVE-2025-55182، وبتسمح للهاكر إنه ينفّذ أوامر على السيرفر بتاعك وكأنه قاعد عليه بنفسه!
يعني باختصار:
الهاكرز ممكن يتحكموا في السيرفر بالكامل من غير باسورد ولا دخول فعلي 😨
الموضوع حرفيًا يعتبر كارثة أمنية لأي موقع بيستخدم Next.js أو RSC بالشكل الحالي لو مش محدّث.
طب يعني إيه RCE؟ وليه مرعبة كده؟ 💻🔥
RCE = Remote Code Executionودي ببساطة معناها إن حد يبعت Request معمول بذكاء للموقع بتاعك، والسيرفر للأسف ينفّذ اللي فيه كأنه كود عادي من عندك.
تخيل كده؟
هاكر يبعت طلب… السيرفر ينفّذ:
- حذف ملفات
- إنشاء ملفات
- تشغيل سكريبتات
- تحميل Malware
- سرقة Data
- أو حتى مسح الموقع كله! 🤯
المشكلة بدأت منين؟ (Serialization / Deserialization) 🧩⚙️
Next.js و RSC بيعتمدوا على عملية مهمة جدًا:المرحلة الأولى: Serialization
لما React Server Components تشتغل…السيرفر بياخد:
- الكود
- الـ Objects
- الـ Props
وبيحولهم لـ بيانات خام (نصوص – JSON – binary …) عشان يقدر يبعتها للمتصفح.
السيرفر بيجهز البيانات في شكل "باكدج" سهلة النقل.
المرحلة الثانية: Deserialization
لما البيانات بترجع من العميل أو السيرفر يعالج نفسه بيانات داخلية، لازم يرجّع الـ Raw Data دي لـ Objects برمجية حقيقية.المشكلة؟
إن عملية الـ Deserialization كانت بتثق في البيانات اللي جاية… ودي غلطة كبيرة جدًا.
فين الثغرة بالظبط؟ 🔍💥
الثغرة CVE-2025-55182 كانت بتسمح للهاكر إنه يبعت بيانات باين شكلها عادي، لكن جواها أكواد خبيثة.ولأن Next.js و React كانوا بيثقوا في البيانات بشكل زيادة…
لما يحاولوا يعملوا Deserialization، بدلاً من إنه يعمل Object… يروح مشغّل كود!
يعنى بدل ما يبني بيانات…
بيشغّل أوامر! 😨💣
وده بالظبط اللي بيسمّوه:
📌 Object Injection → Code Execution
📌 Deserialization Attack → RCE
تخيل كده السيناريو ده 🔥😬
هاكر يبعت Request بالشكل ده مثلًا: Code:
{
"type": "rsc_object",
"payload": {
"__proto__": {
"exec": "rm -rf /var/www/html"
}
}
} السيرفر لما يفك البيانات… يفتكر إن "exec" جزء من object formatting ويشغّل الأمر!
وهنا الكارثة:
- الموقع يختفي
- السيرفر يتخترق
- الداتا تتسرق
- يتركّب Backdoor
- كل حاجة تقع! 😭
لو بتسأل: "طب أنا متأثر بالثغرة دي؟" 🤔
هقولّك:لو بتستخدم أي من دول:
✔️ Next.js 15 قبل 15.0.5
✔️ Next.js 16 قبل 16.0.7
✔️ React Server Components قبل 19.0.1
يبقى آه… موقعك معرّض للهجوم!
إزاي أحمي نفسي؟ (حل رسمي من Next.js) 🛡️🔥
الحل البسيط جدًا:لو بتستخدم Next.js 15:
حدّث فورًا إلى:➡️ 15.0.5 أو أعلى
لو بتستخدم Next.js 16:
حدّث إلى:➡️ 16.0.7 أو أعلى
لو بتستخدم RSC منفصلة:
حدّث إلى الإصدار:➡️ 19.0.1 أو أعلى
كود بسيط يساعدك تتأكد من الإصدار الحالي 📌💻
في مشروع Next.js:
افتح الطرفية وشغّل:npm list nextأو عن طريق package.json:
Code:
{
"dependencies": {
"next": "16.0.3"
}
} طب أعمل إيه لو خايف إن موقعي متخترق؟ 🔥🔐
إليك خطوات سريعة:1) راجع الـ Logs
شوف:- طلبات غريبة
- أكواد مش من عندك
- Requests فيها JSON غريب
2) اعمل Scan على الموقع
مثال: Code:
npm install -g @nodesecurity/eslint-plugin-security 3) استخدم WAF
لو موقعك على Cloudflare… شغّل الـ Firewall Rules.4) اقفل أي API مفتوح
خاصة لو عندك:- Webhooks
- RSC API routes
- Server Actions
ليه الثغرة دي مهمة للي بيشتغلوا في الأمن السيبراني؟ 🧠🛡️
لأنها نموذج ممتاز لفهم:- Serialization Attacks
- Object Injection
- Code Execution Chains
- React Server Architecture
- Security Hardening في Next.js
نصايح ذهبية للمبرمجين والمطورين 💡⚡
✔️ دايمًا أحدث✔️ اقفل أي Endpoint مش محتاجه
✔️ متثقش في أي Input مهما كان
✔️ استخدم Security Headers
✔️ شغّل TypeScript Strict Mode
✔️ استخدم ESLint security rules
خلاصة الكلام 📝🔥
الثغرة دي مش بسيطة…دي معرّضة آلاف المواقع للاختراق الكامل بسبب ثقة زيادة في بيانات جاية من العميل أثناء Deserialization.
لو موقعك مبني بـ Next.js أو RSC، لازم لازم تحدّث فورًا قبل ما حد يستغل الثغرة عليك.
ومهم جدًا تتابع تحديثات الأمن من Next.js باستمرار، لأن الثغرات دي بتطلع كل فترة.
وخليك فاكر:
الأمان مش اختيار… الأمان جزء أساسي من الكود.