نهاية NextJS؟... اكتشاف 13 ثغرة أمنية جديدة

원제 · Yeah it’s over for NextJS... 13 NEW vulnerabilities

16:034분 읽기Better Stack2026. 05. 11.컴퓨터/소프트웨어 · 경제 뉴스 · AI/미래기술

핵심 요약

تتطلب معالجة 13 ثغرة أمنية في Next.js، بما في ذلك ثغرة SSRF بخطورة 8.6، تحديثًا فوريًا للإصدارات الأمنية لتجنب تسريب البيانات الحساسة أو تعطيل خيوط المعالجة بالخادم.

하이라이트

  • يواجه إطار العمل Next.js وReact ما مجموعه 13 ثغرة أمنية جديدة (CVEs)، من بينها 6 ثغرات مصنفة عالية الخطورة.

  • تسمح ثغرة تجاوز البرمجيات الوسيطة (Middleware) في Pages Router عند تفعيل i18n بالوصول إلى بيانات الخادم الحساسة عبر مسارات JSON المخصصة.

  • تؤدي ثغرة تعطيل الخدمة (DoS) في مكونات الخادم إلى زيادة وقت استجابة الطلب من 0.02 ثانية إلى 6 ثوانٍ عبر استغلال آلية تسلسل البيانات في بروتوكول React Flight.

  • تم تحديد ثغرة تزوير الطلبات من جانب الخادم (SSRF) بتقييم خطورة 8.6 من 10، وهي تؤثر بشكل أساسي على التطبيقات التي تعتمد على الاستضافة الذاتية.

  • يتسبب الاستخدام غير الآمن لسمات السكربت مع استراتيجية before interactive في ثغرات حقن النصوص (XSS) بسبب عدم هروب محارف HTML عند استخدام JSON.stringify.

  • يتطلب تأمين التطبيقات المتأثرة ترقية Next.js إلى أحدث الإصدارات الأمنية، حيث أن الأنظمة التي تعتمد على TanStack Start أو Astro لم تتأثر بهذه الثغرات المحددة.

타임라인

  1. أزمة الثغرات الأمنية في مكونات الخادم

    تتكرر المشاكل الأمنية المرتبطة بمكونات الخادم (Server Components) للمرة الثالثة خلال عام واحد. تتركز المخاطر في النسخ التي تستخدم بروتوكولات تسلسل البيانات الخاصة بـ React. بينما تظل أدوات مثل TanStack بعيدة عن هذه المخاطر، تظل الحاجة ملحة لمراجعة شاملة للأكواد البرمجية لضمان عدم وجود ثغرات إضافية غير مكتشفة.

    • تتوزع 13 ثغرة أمنية جديدة عبر إطاري العمل React وNext.js مع تصنيف 6 منها كتهديدات عالية الخطورة.
    • تشمل التهديدات المكتشفة تجاوز البرمجيات الوسيطة وحقن النصوص وتعطيل الخدمة وتزوير الطلبات.
    • تعد ترقية جميع إصدارات Next.js المتأثرة إلى النسخ المصححة هي الطريقة الوحيدة لضمان سلامة التطبيقات.
  2. آلية تجاوز البرمجيات الوسيطة في Pages Router

    يحدث الخلل عندما لا يقوم Next.js بتضمين المسار الأساسي في مطابقة البرمجيات الوسيطة عند استخدام اللغات. يمكن للمهاجم بناء رابط يبدأ بـ _next/data/ متبوعًا بمعرف البناء واسم الصفحة للوصول إلى خصائص الخادم (Server-side Props) مثل البريد الإلكتروني أو عناوين الجلسات. يوضح هذا مخاطر الاعتماد الكلي على البرمجيات الوسيطة لحماية البيانات الحساسة دون وجود منطق توثيق إضافي في الخادم.

    • تسمح ثغرة في إعدادات i18n بالوصول إلى بيانات الخادم السرية التي يفترض أن تحميها البرمجيات الوسيطة.
    • يتم استخراج معرف البناء (Build ID) من مصدر الصفحة للوصول إلى روابط البيانات بصيغة .json مباشرة.
    • يفشل النظام في حماية المسارات الأساسية عند تفعيل لغات متعددة، مما يترك البيانات عرضة للاختراق.
  3. استغلال بروتوكول React Flight لتعطيل الخدمة

    يستخدم React بروتوكول Flight لتسلسل الأشجار والبيانات، حيث يتم البحث عن مؤشرات معينة مثل $k1 داخل الحمولة. عند إرسال 200,000 مفتاح عشوائي مع طلبات لمؤشرات متعددة، يضطر الخادم للقيام بحوالي 200 مليون مقارنة، مما يعطل معالجة الطلبات لعدة ثوانٍ. يعالج التحديث الأمني هذه المشكلة عبر تقديم نظام المؤشر (Cursor) الذي يمنع العودة للخلف أثناء فحص المفاتيح، مما يقلص العمليات إلى الحد الأدنى.

    • تعتمد ثغرة DoS على إرسال حمولة ضخمة تحتوي على آلاف المفاتيح العشوائية لإجهاد المعالج.
    • يؤدي نظام المقارنة التسلسلي القديم إلى تنفيذ ملايين عمليات مقارنة السلاسل النصية في الطلب الواحد.
    • يقلل الإصلاح الجديد عدد العمليات من نظام التناسب الهندسي إلى نظام خطي يعتمد على مؤشر ثابت.
  4. ثغرة SSRF وتجاوز الجدران النارية الداخلية

    تكمن الخطورة في قدرة المهاجم على إرسال طلب curl إلى خادم Next.js يطلب منه جلب بيانات من خدمة داخلية مثل Redis أو قاعدة بيانات غير متاحة للعموم. بما أن الخادم يملك صلاحية الوصول لهذه الخدمات، فإنه يقوم بتمرير البيانات للمهاجم بالنيابة عنه. يعتمد الإصلاح على التحقق من حالة الانتهاء (finished) ورموز الاستجابة للتأكد من أن الطلب يطابق قواعد إعادة الكتابة المسموح بها فقط.

    • تسمح ثغرة تزوير الطلبات من جانب الخادم (SSRF) للمهاجمين باستخدام Next.js كوكيل للوصول لخدمات داخلية محمية.
    • يتم التلاعب بترويسة upgrade websocket لتوجيه الطلب نحو روابط localhost الداخلية.
    • يضيف التحديث حراسًا جددًا لدالة resolve routes للتأكد من مشروعية طلبات الوكيل قبل تنفيذها.
  5. تسميم الذاكرة المؤقتة وحقن النصوص البرمجية

    في ثغرة التسميم، يخدع المهاجم نظام CDN لتخزين بيانات مكونات الخادم المشوهة في مسار HTML العادي عبر إضافة نص استعلام يمنع التحقق من امتداد .rsc. أما في ثغرة XSS، فإن استراتيجية before interactive تسمح بإغلاق وسم السكربت الأصلي وفتح وسم جديد لتنفيذ أكواد خبيثة. يتطلب الإصلاح تجاهل نصوص الاستعلام عند فحص الامتدادات وضمان الهروب الصحيح لجميع المدخلات غير الموثوقة قبل عرضها في المتصفح.

    • يحدث تسميم الذاكرة المؤقتة (Cache Poisoning) عند تخزين بيانات RSC كأنها ملفات HTML بسبب نصوص الاستعلام في الرابط.
    • تنشأ ثغرات XSS نتيجة عدم معالجة محارف HTML بشكل صحيح داخل JSON.stringify في وسوم السكربت.
    • يمكن للمهاجمين حقن نماذج دخول مزيفة أو سرقة ملفات تعريف الارتباط عبر روابط ملغمة ببارامترات البحث.

설명

أصدرت Next.js للتو تحديثاً أمنياً لإصلاح 13 ثغرة (CVEs) — 6 منها عالية الخطورة. في هذا الفيديو، نقوم بتحليل تجاوز البرمجيات الوسيطة (middleware bypasses)، وهجمات حجب الخدمة عبر بروتوكول React Flight، وتزوير الطلبات عبر الخادم، والبرمجة عبر المواقع (XSS). هل كانت مكونات الخادم (server components) خطأً؟ 🔗 روابط ذات صلة المدونة الأمنية: [https://vercel.com/changelog/next-js-may-2026-security-release](https://vercel.com/changelog/next-js-may-2026-security-release) ❤️ المزيد عنا أفضل أدوات مراقبة الأنظمة: [https://betterstack.com/](https://betterstack.com/) دروس مكتوبة: [https://betterstack.com/community/](https://betterstack.com/community/) مشاريع تجريبية: [https://github.com/BetterStackHQ](https://github.com/BetterStackHQ) 📱 حساباتنا الاجتماعية تويتر: [https://twitter.com/betterstackhq](https://twitter.com/betterstackhq) إنستغرام: [https://www.instagram.com/betterstackhq/](https://www.instagram.com/betterstackhq/) تيك توك: [https://www.tiktok.com/@betterstack](https://www.tiktok.com/@betterstack) لينكد إن: [https://www.linkedin.com/company/betterstack](https://www.linkedin.com/company/betterstack) 📌 الفصول: 00:00 مقدمة 00:41 تجاوز البرمجيات الوسيطة (Middleware Bypass) 03:50 هجمات حجب الخدمة (DoS) 07:50 تزوير الطلبات (الأعلى خطورة) 10:57 تسمم ذاكرة التخزين المؤقت (Cache Poisoning) 12:45 البرمجة عبر المواقع (XSS) 15:09 هل كانت خطأً؟

커뮤니티 글

모든 글 보기
이 영상에 대해 글쓰기