---
title: "سبع ثغرات انسكّرت بـ Next.js 16.4.5: مين لازم يحدّث اليوم؟"
description: "تحديث Next.js 16.4.5 و15.5.29 بيسكّر سبع ثغرات، منها كاش بيوصّل بيانات مستأجر لمستأجر تاني، وكوكي HttpOnly بتنقرا بمسارات Edge. حدّث، وشوف أي وحدة بتلمس تطبيقك."
url: https://ihsanalapsi.dev/articles/nextjs-16-4-5-security-release
lang: ar
date: 2026-11-05
updated: 2026-11-05
tags: ["تحديثات أمنية", "تطوير الويب", "أمن التطبيقات"]
author: Ihsan Alapsi (إحسان العبسي)
---
# سبع ثغرات انسكّرت بـ Next.js 16.4.5: مين لازم يحدّث اليوم؟

إذا عندك تطبيق Next.js بيخدم أكتر من زبون من نفس السيرفر، أو بيحط كوكي الجلسة من مسار Edge، هالتحديث إلك. [منشور Next.js الأمني لشهر تشرين الثاني](https://nextjs.org/blog/november-2026-security-release) بيقول إنو التحديثات نزلت بـ v16.4.5 (Active LTS) وv15.5.29 (Maintenance LTS). بآخر المقال رح تعرف أي ثغرة بتلمس تطبيقك، وكيف تحدّث بأمرين.

## شو بيصلّح تحديث Next.js 16.4.5؟

تحديث Next.js 16.4.5 و15.5.29 بيسكّر سبع ثغرات أمنية، وكل وحدة منهن بتحتاج إعداد معيّن بتطبيقك لحتى تأثّر عليه.

هيك بتتوزّع حسب المنشور الرسمي:


| الثغرة                                                                               | مين بيتأثر                                                                                                                       |
| ------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------- |
| كاش بيوصل لمستأجر تاني لما دالة `use cache` تنستدعى مباشرة ومن جوّا `unstable_cache` | تطبيقات Cache Components يلي دالتها المكاشة بتقرا root parameter متل معرّف المستأجر                                              |
| محتوى قيمة root parameter بينعرض لقيمة تانية بدوال `use cache` متداخلة               | Cache Components مع دوال مكاشة جوّا بعض                                                                                          |
| arguments ثنائية مختلفة بتعطي نفس هوية الكاش                                         | يلي بيمرّق arguments ثنائية بتميّز المستخدمين لـ `use cache`                                                                     |
| تسميم الـ shell المشترك للصفحة بطلب بلا تسجيل دخول                                   | المستضاف ذاتياً بـ `next start` مع Cache Components وPartial Prefetching مطفي أو مش محدد                                         |
| رد بيوصل لعميل غلط                                                                   | المستضاف ذاتياً يلي بيرجّع `Response` من `fetch` متل ما هو، ورا reverse proxy بـ HTTP/1.1 بيرتّب طلبات pipelined على اتصال مشترك |
| قيمة كوكي `HttpOnly` بهيدر `x-middleware-set-cookie`                                 | مسارات Edge يلي بتحط الكوكي بـ `NextResponse.cookies.set()`                                                                      |
| صورة SVG بتمرق كأنها AVIF رغم `dangerouslyAllowSVG: false`                           | Image Optimization مع backend بيقدر يفك SVG                                                                                      |


إذا ولا سطر من الجدول بيشبه تطبيقك، التحديث بيضل الأسلم، لأنو أسهل من إنك تتأكد من كل شرط لحاله.

## ليش ثغرة الكاش أخطر شي على تطبيقات الـ SaaS؟

ثغرة الكاش بتخلّي زبون يشوف بيانات زبون تاني، لأنو نتيجة مكاشة لمستأجر واحد ممكن تنحفظ وترجع لغيره بنفس الـ arguments.

حسب [الإرشاد GHSA-mfr8-8qww-v76h](https://github.com/vercel/next.js/security/advisories/GHSA-mfr8-8qww-v76h)، يلي انتشر بـ 3 تشرين الثاني 2026، النسخ المتأثرة من 16.3.0 وطالع. المشكلة بتصير وقت تعبئة الكاش أول مرة: طلبين بنفس اللحظة، واحد مباشر وواحد من جوّا `unstable_cache`، والتاني ممكن ياخد نتيجة الأول بلا ما يتأكد من الـ root parameters تبعها. بعدها النتيجة الغلط بتضل بالكاش وبتنرجع لكل طلب بنفس الـ arguments، لحد ما ينعاد توليدها أو تنشال من الكاش.

الغلطة هون منطقية أكتر ما هي تقنية: الطلب التاني بيدوّر على نتيجة بنفس الـ arguments، وبياخدها بلا ما يفحص لأي مستأجر انعملت. فالنتيجة بتطلع صح بالشكل، وغلط بالزبون. والإرشاد نفسه بيقول إنو ما تستدعي دالة `use cache` من جوّا `unstable_cache` حل كامل إذا ما بتقدر تحدّث هلق.

## شو قصة كوكي الـ HttpOnly بمسارات Edge؟

مسارات Edge يلي بتحط كوكي بـ `NextResponse.cookies.set()` كانت بتنسخ الكوكي لهيدر داخلي اسمه `x-middleware-set-cookie`، وهالهيدر بيقدر يقراه كود JavaScript من نفس الموقع.

يعني علامة `HttpOnly`، يلي حطّيتها لحتى ما يوصل JavaScript لكوكي الجلسة، ما عادت تحميها بهالمسارات. حسب [الإرشاد GHSA-f3mh-rxg3-f5g2](https://github.com/vercel/next.js/security/advisories/GHSA-f3mh-rxg3-f5g2)، الثغرة بتخص Edge Route Handlers بالـ App Router وEdge API routes بالـ Pages Router. والمنشور الرسمي بيوضّح إنها مش طريقة لحالها لتشغيل كود: المهاجم لازم يكون عنده JavaScript شغّال على نفس الموقع، يعني ثغرة XSS تانية. وبالتجربة يلي انعملت، مسارات Node.js والكوكي يلي بتنحط بـ `cookies().set()` ما تأثروا.

إذا بدك تتأكد من باقي إعدادات كوكي الجلسة، عنا مقال عن [فحص كوكي الجلسة: HttpOnly وSecure وSameSite](/articles/session-cookie-flags-check).

## كيف تعرف إذا تطبيقك محتاج التحديث؟

تطبيقك محتاج التحديث إذا نسخة `next` فيه أقدم من النسخة المصلّحة على فرعها. بالترتيب:

1. افتح مجلد المشروع وشوف النسخة يلي منزّلة فعلياً:
   ```bash
   npm ls next
   ```
2. حدّث للنسخة المصلّحة على فرعك، متل ما بيقول المنشور:
   ```bash
   npm install next@16.4.5
   npm install next@15.5.29
   ```

   الأول لفرع 16 والتاني لفرع 15.5، مش التنين سوا.
3. دوّر بالكود على الأماكن يلي بتخص الثغرات، لحتى تعرف شو تجرّب بعد التحديث:
   ```bash
   grep -rn "use cache\|unstable_cache\|cookies.set\|dangerouslyAllowSVG" app pages src
   ```
4. اعمل build وdeploy، وجرّب الصفحات يلي طلعت بالبحث، خصوصاً يلي بتعرض بيانات مستأجر.

## من وين تبلّش هلق؟

ابدأ بالتطبيق يلي بيخدم أكتر من زبون، أو يلي بيحط كوكي الجلسة من مسار Edge: هدول أول ناس بيخسروا إذا تأخروا. وإذا قريت عن [تحديث Next.js الأمني يلي قبله](/articles/nextjs-16-4-1-security-update)، هاد تحديث جديد بعده، فالنسخة يلي حدّثت لها وقتها ما بتكفي.

وإذا تطبيقك فيه بيانات زباين مفصولة ومش متأكد إنو الفصل صامد، [فحص اختراق مع مُحَصَّن](/muhassan) بيجرّب هالحدود متل ما بيجرّبها مهاجم.

أي نسخة `next` شغّالة عندك بالإنتاج هلق؟

## FAQ

**إذا موقعي على Vercel، لازم حدّث بنفسي؟**

إي. التحديث بنسخة الحزمة next بمشروعك، فلازم ترفع النسخة وتعمل deploy من جديد. وثغرتين من السبعة بيخصّوا التطبيقات المستضافة ذاتياً بس.

**تطبيقي ما بيستعمل use cache أبداً، أنا بأمان؟**

من ثغرات الكاش إي، بس في ثغرات تانية بالتحديث: الكوكي بمسارات Edge، وتحسين الصور، والتطبيقات المستضافة ذاتياً. الأسهل إنك تحدّث بدل ما تفحص كل وحدة.

**في حل مؤقت لثغرة الكاش إذا ما بقدر حدّث هلق؟**

إي. الإرشاد بيقول إنو إذا ما استدعيت دالة use cache من جوّا unstable_cache، الثغرة ما بتصير. بس هاد للثغرة الأولى بس، والباقي بدّه التحديث.
