تحديث Next.js الأمني — يوليو 2026: ترقيع 9 ثغرات
في 20 يوليو 2026 نشر فريق Next.js أول إصدار أمني مجدول ومعلن مسبقًا في تاريخ الإطار: تسع ثغرات مُرقّعة دفعة واحدة — أربع بخطورة عالية وخمس متوسطة — في النسختين المدعومتين 16.2 و15.5. الخبر مو بس في الثغرات نفسها، بل في الطريقة: قبلها بأسبوع (13 يوليو) أعلنت Vercel تحوّل Next.js إلى برنامج إصدارات أمنية شهرية بإشعار مسبق، على نهج Django وNode.js وOpenSSL.
المشكلة: رُقع مفاجئة وسباق مع المهاجمين
اللي يشغّل Next.js في الإنتاج يعرف السيناريو: يطلع ترقيع أمني بدون سابق إنذار، وتتحول ليلة الفريق إلى سباق ترقيع وتدقيق. صار هذا مرتين بشكل مؤلم: ثغرة تجاوز الـ Middleware في مارس 2025 (CVE-2025-29927 بتقييم 9.1)، ثم React2Shell في ديسمبر 2025 بتقييم 10.0 كامل في React Server Components.
والضغط يزيد: حجم اكتشاف الثغرات في الصناعة كلها يتضاعف بفضل الأدوات المدعومة بالنماذج اللغوية — Mozilla وحدها أفصحت عن 271 ثغرة في إصدار واحد من Firefox، كلها مكتشفة بأدوات Anthropic. الذكاء الاصطناعي ما استبدل الباحث الأمني؛ ضاعف قدرته — والمعادلة نفسها تنطبق على المهاجمين. Vercel تشغّل نفس الفئة من الأدوات على Next.js عبر مشروعها deepsec وبرنامج مكافآت الثغرات.
وش تغيّر فعليًا؟
- جدول شهري معلن: إشعار مسبق على مدونة Next.js يوضح موعد الإصدار وأعلى خطورة متوقعة، مع بقاء الرُقع الطارئة للثغرات المستغلة فعليًا.
- تنسيق مع المنصات: المهلة تسمح لمزوّدي الاستضافة بنشر قواعد حماية (WAF) قبل وصول الترقيع لكل التطبيقات.
أبرز ثغرات هذا الإصدار:
- CVE-2026-64641 (عالية): حجب خدمة عبر Server Actions في App Router باستهلاك المعالج.
- CVE-2026-64642 (عالية): تجاوز Middleware في التطبيقات المبنية بـ Turbopack مع locale واحد — أي تحقق مصادقة في الـ Middleware يُتجاوز بالكامل.
- CVE-2026-64645 (عالية): SSRF في
rewrites()عندما يُبنى اسم المضيف من مدخلات الطلب. - CVE-2026-64649 (عالية): SSRF في Server Actions على الخوادم المخصصة.
التطبيق العملي
الترقية أولًا:
npm install next@16.2.11 # Active LTS
npm install next@15.5.21 # Maintenance LTSثم الدرس الأعمق من ثغرات تجاوز الـ Middleware المتكررة: الـ Middleware طبقة تحسين، مو خط الدفاع الوحيد. التحقق من الجلسة لازم يكون في طبقة الوصول للبيانات نفسها:
// lib/dal.ts
import 'server-only'
import { verifySession } from './session'
export async function getOrders() {
const session = await verifySession()
if (!session) throw new Error('unauthorized')
return db.orders.findMany({
where: { userId: session.userId },
})
}بهذا النمط، حتى لو تُجوّز الـ Middleware (مثل CVE-2026-64642)، ما يوصل المهاجم لبيانات بدون جلسة صحيحة.
ملاحظات من أرض الواقع
- الاستضافة الذاتية أكثر انكشافًا: عملاء Vercel حصلوا على حماية WAF تلقائية أثناء React2Shell، بينما المستضيف ذاتيًا يتحمل نافذة ما بين الإفصاح والترقيع كاملة. الجدول الشهري يقلّص النافذة، ما يلغيها.
- متجر إلكتروني على App Router مع Server Actions؟ ثغرتا الـ DoS والـ SSRF تخصّك مباشرة — الترقية مو ترف.
- ثبّت الاعتماديات بـ lockfile وفعّل تنبيهات آلية (Renovate أو Dependabot) بحيث يكون يوم الترقيع الشهري روتينًا قصيرًا، مو مشروعًا.
- المعادلة نفسها اللي غطيناها في مصادقة وكلاء MCP: كلما زادت قدرة الأنظمة الذكية، صار الأمن عملية مستمرة مو حدثًا.
الخلاصة
Next.js انتقل من ترقيع ردّة الفعل إلى إيقاع أمني قابل للتخطيط — استجابة مباشرة لعصر تتضاعف فيه سرعة اكتشاف الثغرات بالذكاء الاصطناعي. الخطوة العملية اليوم: الترقية إلى 16.2.11 أو 15.5.21، ومراجعة أن المصادقة ما تعتمد على الـ Middleware وحده.
المصدر الأساسي: July 2026 Security Release — مدونة Next.js