---
title: "ثغرات Next.js بتشرين الأول 2026: لأي نسخة لازم ترقّي؟"
description: "إذا تطبيقك على Next.js 16 روح على 16.4.1 أو أحدث، وإذا على 15 روح على 15.5.28 وتأكد إنو sharp صارت 0.35.5. بعدين ابنِ المشروع وانشره من جديد."
url: https://ihsanalapsi.dev/articles/nextjs-16-4-1-security-update
lang: ar
date: 2026-10-21
updated: 2026-10-21
tags: ["Next.js", "أمن التطبيقات", "تحديثات أمنية"]
author: Ihsan Alapsi (إحسان العبسي)
---
# ثغرات Next.js بتشرين الأول 2026: لأي نسخة لازم ترقّي؟

بـ 14 تشرين الأول 2026 نشر فريق &lt;span dir="ltr"&gt;Next.js&lt;/span&gt; تحديث أمني خارج موعده العادي لتلات ثغرات، اتنين منهن حرجين. إذا عندك تطبيق &lt;span dir="ltr"&gt;Next.js&lt;/span&gt; على &lt;span dir="ltr"&gt;Vercel&lt;/span&gt; أو &lt;span dir="ltr"&gt;Netlify&lt;/span&gt; أو على سيرفرك، بآخر هالصفحة بتكون عارف شو منهن بيصيب تطبيقك، ورقّيت ونشرت من جديد، وعندك خطة للنقل من 15 لـ 16.

## لأي نسخة لازم ترقّي &lt;span dir="ltr"&gt;Next.js&lt;/span&gt; هلق؟

إذا تطبيقك على &lt;span dir="ltr"&gt;Next.js 16&lt;/span&gt;، رقّي لـ 16.4.1 أو أحدث. وإذا على &lt;span dir="ltr"&gt;Next.js 15&lt;/span&gt;، رقّي لـ 15.5.28. هدول أول نسختين فيهن التصليح.

هيك مكتوب الأمر بـ [إعلان فريق &lt;span dir="ltr"&gt;Next.js&lt;/span&gt;](https://nextjs.org/blog/nextjs-security-update-october-14-2026):

```bash
npm install next@15.5.28  # for 15.5
npm install next@16.4.1   # for 16.4
```

بـ 15 تشرين الأول طلعت 16.4.2، و[ملاحظات إصدارها](https://github.com/vercel/next.js/releases/tag/v16.4.2) بتذكر تصليحات أغلبها لـ &lt;span dir="ltr"&gt;Turbopack&lt;/span&gt; وللوثائق، وما بتذكر تصليح أمني جديد. هي النسخة `latest` على &lt;span dir="ltr"&gt;npm&lt;/span&gt; لحد 21 تشرين الأول 2026، وصفحات التحذير بتعتبر آخر نسخة مصابة 16.4.0، فـ 16.4.2 كمان بتمشي.


| نسختك هلق            | روح على           | شو لازم تعرف                                                                                                      |
| -------------------- | ----------------- | ----------------------------------------------------------------------------------------------------------------- |
| من 16.0.0 لحد 16.4.0 | 16.4.1 أو أحدث    | التلات ثغرات ممكن يصيبوك إذا انطبقت شروطهن (ثغرة &lt;span dir="ltr"&gt;SVG&lt;/span&gt; حسب صفحتها من بعد 16.0.0) |
| من 15.0 لحد 15.5.27  | 15.5.28           | ثغرة `use cache` ما بتصيب 15، والتانيين بيصيبوا. تأكد من نسخة &lt;span dir="ltr"&gt;sharp&lt;/span&gt; (تحت)      |
| 14 أو أقدم           | 15.5.28 على الأقل | ما في نسخة 14 مصلّحة، و14 برّا الدعم                                                                              |


لحد 21 تشرين الأول 2026 ما في تقارير عن استغلال فعلي: لا الإعلان ولا صفحات التحذير بيذكروا استغلال، و[&lt;span dir="ltr"&gt;The Hacker News&lt;/span&gt;](https://thehackernews.com/2026/10/nextjs-ships-out-of-band-patch-for-two.html) كتب بـ 15 تشرين الأول إنو ما في تقارير علنية، والثغرة مش بـ[قائمة &lt;span dir="ltr"&gt;CISA&lt;/span&gt; للثغرات المستغلة](https://www.cisa.gov/known-exploited-vulnerabilities-catalog).

بس كود الاستغلال صار علني لثغرة الصور مع &lt;span dir="ltr"&gt;SVG&lt;/span&gt;. الباحث يلي لاقى الخلل نشر [شرحه](https://github.com/rafabd1/VectorFreed) مع كود تجريبي، وكتب إنو وصل لتنفيذ أوامر من طريقين بـ &lt;span dir="ltr"&gt;Next.js&lt;/span&gt;. ومن 16 تشرين الأول في على &lt;span dir="ltr"&gt;GitHub&lt;/span&gt; كود استغلال تجريبي لطريق تحسين الصور، انجرّب على 16.4.0 و15.5.27 مع &lt;span dir="ltr"&gt;sharp&lt;/span&gt; 0.35.4.

## شو هي الثغرات التلاتة ومين متأثر بكل وحدة؟

اتنين منهن تنفيذ كود عن بعد (&lt;span dir="ltr"&gt;RCE&lt;/span&gt;) بلا تسجيل دخول: حدا من برّا بيقدر يشغّل كود على سيرفرك. والتالتة حجب خدمة (&lt;span dir="ltr"&gt;DoS&lt;/span&gt;) بتشغل المعالج لدرجة إنو العملية يلي وصلها الطلب ما عادت تعالج طلبات تانية. كل وحدة إلها شرط لحتى تصيب تطبيقك.

كل ثغرة إلها صفحة تحذير أمني على &lt;span dir="ltr"&gt;GitHub&lt;/span&gt; برقم &lt;span dir="ltr"&gt;GHSA&lt;/span&gt;، وفيها تقييم الخطورة بمقياس &lt;span dir="ltr"&gt;CVSS 4.0&lt;/span&gt; من 10، والنسخ المصابة بهالصيغة:


| الثغرة                                                                                                                                                                                                                                               | التقييم    | النسخ المصابة                             | بتصيب مين                                                                                                                                       | في حل مؤقت؟                                                 |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- | ----------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------- |
| تنفيذ كود بدوال `use cache` ([&lt;span dir="ltr"&gt;GHSA-673q-mjm6-r5xr&lt;/span&gt;](https://github.com/vercel/next.js/security/advisories/GHSA-673q-mjm6-r5xr))                                                                                    | حرجة، 9.5  | `>=16.0.0 <=16.4.0`                       | &lt;span dir="ltr"&gt;App Router&lt;/span&gt; مع &lt;span dir="ltr"&gt;Cache Components&lt;/span&gt;                                            | لأ                                                          |
| تنفيذ كود بتحسين صور &lt;span dir="ltr"&gt;SVG&lt;/span&gt; ([&lt;span dir="ltr"&gt;GHSA-2464-fhr4-w9xw&lt;/span&gt;](https://github.com/vercel/next.js/security/advisories/GHSA-2464-fhr4-w9xw)، &lt;span dir="ltr"&gt;CVE-2026-96889&lt;/span&gt;) | حرجة، 9.5  | `>=10.0.0 <=15.5.27` و`>16.0.0 <=16.4.0`  | &lt;span dir="ltr"&gt;Next.js&lt;/span&gt; شغّال على &lt;span dir="ltr"&gt;Linux&lt;/span&gt; مبني على &lt;span dir="ltr"&gt;glibc&lt;/span&gt; | إي: &lt;span dir="ltr"&gt;sharp&lt;/span&gt; 0.35.5 أو أحدث |
| حجب خدمة بالـ &lt;span dir="ltr"&gt;Server Actions&lt;/span&gt; ([&lt;span dir="ltr"&gt;GHSA-p3m5-59mp-jv5r&lt;/span&gt;](https://github.com/vercel/next.js/security/advisories/GHSA-p3m5-59mp-jv5r))                                                | عالية، 8.2 | `>=13.0.0 <=15.5.27` و`>=16.0.0 <=16.4.0` | &lt;span dir="ltr"&gt;App Router&lt;/span&gt; فيه &lt;span dir="ltr"&gt;Server Action&lt;/span&gt; وحدة على الأقل                               | لأ                                                          |


### ثغرة `use cache`: بس بـ &lt;span dir="ltr"&gt;Next.js 16&lt;/span&gt;

الـ &lt;span dir="ltr"&gt;Cache Components&lt;/span&gt; هي طريقة التخزين المؤقت بـ &lt;span dir="ltr"&gt;Next.js 16&lt;/span&gt;: بتعلّم صفحة أو مكوّن أو دالة بتوجيه `use cache`، فبتنحفظ نتيجتها. بتنفتح بـ `cacheComponents: true` بملف `next.config` ([التوثيق](https://nextjs.org/docs/app/api-reference/config/next-config-js/cacheComponents)).

الثغرة بتصير لما دالة `use cache` بترجع أكتر من &lt;span dir="ltr"&gt;typed array&lt;/span&gt; ومعهن قيمة بيتحكم فيها المهاجم. الـ &lt;span dir="ltr"&gt;typed array&lt;/span&gt; هي مصفوفة بتعرض بيانات ثنائية، متل `Uint8Array` ([&lt;span dir="ltr"&gt;MDN&lt;/span&gt;](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray)). أصل الخلل بـ &lt;span dir="ltr"&gt;React&lt;/span&gt;، و[صفحة التحذير تبعها](https://github.com/react/react/security/advisories/GHSA-xqc2-xf4c-x3h3) بتوصف الحالات المصابة بإنها نادرة كتير. ما في حل مؤقت، والفريق بيقول رقّي حتى لو ما عندك هيك دالة.

### ثغرة الصور مع &lt;span dir="ltr"&gt;SVG&lt;/span&gt;: من &lt;span dir="ltr"&gt;Next.js 10&lt;/span&gt; لـ 16

&lt;span dir="ltr"&gt;Next.js&lt;/span&gt; بيستعمل مكتبة &lt;span dir="ltr"&gt;sharp&lt;/span&gt; لتحسين الصور، و&lt;span dir="ltr"&gt;sharp&lt;/span&gt; بتقرا ملفات &lt;span dir="ltr"&gt;SVG&lt;/span&gt; بمكتبة اسمها &lt;span dir="ltr"&gt;librsvg&lt;/span&gt;. الخلل بـ &lt;span dir="ltr"&gt;librsvg&lt;/span&gt;، وحسب [صفحة تحذير &lt;span dir="ltr"&gt;sharp&lt;/span&gt;](https://github.com/lovell/sharp/security/advisories/GHSA-wq5f-xc86-pv6w) بيقدر يوصل لتنفيذ كود بشروط معيّنة وقت التشغيل، على &lt;span dir="ltr"&gt;Linux&lt;/span&gt; مبني على &lt;span dir="ltr"&gt;glibc&lt;/span&gt;. الـ &lt;span dir="ltr"&gt;glibc&lt;/span&gt; هي مكتبة &lt;span dir="ltr"&gt;C&lt;/span&gt; الأساسية بأنظمة &lt;span dir="ltr"&gt;GNU/Linux&lt;/span&gt; ([&lt;span dir="ltr"&gt;GNU&lt;/span&gt;](https://www.gnu.org/software/libc/)).

الحل المؤقت إنو &lt;span dir="ltr"&gt;sharp&lt;/span&gt; يلي بيستعملها &lt;span dir="ltr"&gt;Next.js&lt;/span&gt; تكون 0.35.5 أو أحدث.

الإعداد الافتراضي ما بيحميك هون. [توثيق مكوّن الصورة](https://nextjs.org/docs/app/api-reference/components/image) بيقول إنو صور &lt;span dir="ltr"&gt;SVG&lt;/span&gt; ما بتتحسّن إلا مع `dangerouslyAllowSVG: true`، بس حسب [شرح الباحث يلي لاقى الخلل](https://github.com/rafabd1/VectorFreed)، صورة معمولة خصيصاً بتعدّي رفض الـ &lt;span dir="ltr"&gt;SVG&lt;/span&gt; بالـ &lt;span dir="ltr"&gt;Image Optimization API&lt;/span&gt; وبتوصل لـ &lt;span dir="ltr"&gt;librsvg&lt;/span&gt;. الشرط إنو المحسّن يقبل صورة بيتحكم المهاجم بمصدرها، متل رابط من دومين مسموح بـ `remotePatterns` أو ملف رفعه مستخدم.

وفي طريق تاني: [ملاحظة &lt;span dir="ltr"&gt;Netlify&lt;/span&gt;](https://www.netlify.com/changelog/2026-10-14-nextjs-react-security-vulnerabilities/) بتقول إنو نفس الخلل بيوصله `ImageResponse` من `next/og` لما بيرسم مدخلات من المستخدم.

### ثغرة &lt;span dir="ltr"&gt;Server Actions&lt;/span&gt;: من &lt;span dir="ltr"&gt;Next.js 13&lt;/span&gt; لـ 16

الـ &lt;span dir="ltr"&gt;Server Action&lt;/span&gt; هي دالة &lt;span dir="ltr"&gt;async&lt;/span&gt; بتشتغل عالسيرفر وبتناديها الواجهة بطلب شبكة، متل الدالة يلي بتربطها بـ `action` تبع `<form>` ([التوثيق](https://nextjs.org/docs/app/getting-started/mutating-data)). طلبات معمولة خصيصاً لتطبيق &lt;span dir="ltr"&gt;App Router&lt;/span&gt; فيه وحدة منهن على الأقل بتعلّي استهلاك المعالج، فنفس العملية ما عادت تعالج طلبات تانية. تطبيقات &lt;span dir="ltr"&gt;Pages Router&lt;/span&gt; والتطبيقات بلا &lt;span dir="ltr"&gt;Server Actions&lt;/span&gt; مش متأثرة، وما في حل غير الترقية.

## كيف بتعرف نسختك ونسخة &lt;span dir="ltr"&gt;sharp&lt;/span&gt; يلي منزّلة فعلاً؟

من مجلد المشروع، `npx next --version` بيعطيك نسخة &lt;span dir="ltr"&gt;Next.js&lt;/span&gt;، و`npm ls sharp` بيعطيك نسخة &lt;span dir="ltr"&gt;sharp&lt;/span&gt; المنزّلة بشجرة الحزم، مش الرقم المكتوب بـ `package.json`.

1. افتح التيرمنال بمجلد المشروع وشغّل الأمرين ([توثيق next](https://nextjs.org/docs/app/api-reference/cli/next) و[توثيق npm ls](https://docs.npmjs.com/cli/v11/commands/npm-ls)). بيطلعلك رقم &lt;span dir="ltr"&gt;Next.js&lt;/span&gt;، وشجرة فيها كل نسخة &lt;span dir="ltr"&gt;sharp&lt;/span&gt; منزّلة ومين جابها:

```bash
npx next --version
npm ls sharp
```

إذا مشروعك على &lt;span dir="ltr"&gt;pnpm&lt;/span&gt; أو &lt;span dir="ltr"&gt;yarn&lt;/span&gt; أو &lt;span dir="ltr"&gt;bun&lt;/span&gt;، بدل `npm ls sharp` شغّل `pnpm why sharp` أو `yarn why sharp` أو `bun why sharp` ([&lt;span dir="ltr"&gt;pnpm&lt;/span&gt;](https://pnpm.io/cli/why)، [&lt;span dir="ltr"&gt;yarn&lt;/span&gt;](https://yarnpkg.com/cli/why)، [&lt;span dir="ltr"&gt;bun&lt;/span&gt;](https://bun.com/docs/pm/cli/why)).

2. شوف إذا فاتح &lt;span dir="ltr"&gt;Cache Components&lt;/span&gt; وإذا عندك &lt;span dir="ltr"&gt;Server Actions&lt;/span&gt;. إذا طلع `cacheComponents: true`، ثغرة `use cache` قريبة منك. وإذا طلعت ملفات فيها `use server`، عندك &lt;span dir="ltr"&gt;Server Actions&lt;/span&gt;:

```bash
git grep -n "cacheComponents"
git grep -ln "use server"
```

3. لا تعتمد على `npm audit` هالمرة. الأمر بيسأل قاعدة تحذيرات &lt;span dir="ltr"&gt;npm&lt;/span&gt; ([التوثيق](https://docs.npmjs.com/cli/v11/commands/npm-audit))، ولحد 21 تشرين الأول 2026 القاعدة ما بترجع ولا تحذير لـ `next@16.4.0` أو `next@15.5.27`. يعني رح ينبّهك بس إذا &lt;span dir="ltr"&gt;sharp&lt;/span&gt; أقدم من 0.35.5.

## كيف بترقّي وبتنشر بالترتيب؟

نزّل النسخة المصلّحة، تأكد إنو &lt;span dir="ltr"&gt;sharp&lt;/span&gt; صارت 0.35.5 أو أحدث، ابنِ المشروع، وانشره من جديد. النسخة المصلّحة ما بتوصل للسيرفر إلا مع &lt;span dir="ltr"&gt;build&lt;/span&gt; ونشر جديدين.

1. نزّل النسخة بالأمر يلي فوق. مع &lt;span dir="ltr"&gt;pnpm&lt;/span&gt; أو &lt;span dir="ltr"&gt;yarn&lt;/span&gt; أو &lt;span dir="ltr"&gt;bun&lt;/span&gt; نفس الرقم بأمر الإضافة تبعهن، متل `pnpm add next@16.4.1` (الأوامر الأربعة بـ [دليل الترقية لـ 16](https://nextjs.org/docs/app/guides/upgrading/version-16)).
2. شغّل `npm ls sharp` (أو أمر `why` تبع مدير الحزم عندك) مرة تانية. نسخة 16.4.1 بتطلب `^0.35.5`، فالترقية بتجيب &lt;span dir="ltr"&gt;sharp&lt;/span&gt; المصلّحة معها. أما 15.5.28 فبتقبل `^0.34.3 || ^0.35.5` ([سجل &lt;span dir="ltr"&gt;npm&lt;/span&gt;](https://registry.npmjs.org/next/15.5.28))، فإذا الـ &lt;span dir="ltr"&gt;lockfile&lt;/span&gt; فيه 0.34 من قبل، ممكن يضل متل ما هو. وصفحة تحذير &lt;span dir="ltr"&gt;sharp&lt;/span&gt; بتعتبر أي نسخة أقدم من 0.35.5 مصابة.
3. إذا لسا طالعلك &lt;span dir="ltr"&gt;sharp&lt;/span&gt; أقدم من 0.35.5، ثبّت نسختها بمدير الحزم. مع &lt;span dir="ltr"&gt;npm&lt;/span&gt;: زيد المفتاح `overrides` على `package.json` يلي عندك، وشغّل `npm install`، وبعدين `npm ls sharp` لتتأكد ([توثيق overrides](https://docs.npmjs.com/cli/v11/configuring-npm/package-json)). هالرقم بيضل ثابت، فغيّره لما تطلع نسخة أحدث:

```json
{
  "overrides": {
    "sharp": "0.35.5"
  }
}
```

بـ &lt;span dir="ltr"&gt;yarn&lt;/span&gt; نفس الفكرة بمفتاح اسمه `resolutions` بـ `package.json` ([التوثيق](https://yarnpkg.com/configuration/manifest#resolutions)). بـ &lt;span dir="ltr"&gt;pnpm&lt;/span&gt; المفتاح `overrides` بس مكانه ملف `pnpm-workspace.yaml` ([التوثيق](https://pnpm.io/settings/dependency-resolution#overrides)). و&lt;span dir="ltr"&gt;bun&lt;/span&gt; بيقرا `overrides` من `package.json` متل &lt;span dir="ltr"&gt;npm&lt;/span&gt; ([التوثيق](https://bun.com/docs/pm/overrides)). بعد التثبيت، تأكد بأمر `why` تبع مديرك.

4. ابنِ المشروع بـ `npm run build`، وجرّب الصفحات يلي فيها صور وفورمات قبل النشر.
5. انشر من جديد. على &lt;span dir="ltr"&gt;Netlify&lt;/span&gt;، نسخ المعاينة والفروع المنشورة يلي إلها روابط عامة ممكن تضل مصابة لحد ما تنحذف لحالها، والشركة بتنصح تحذفها بإيدك. وإذا منصتك بتخلّي نسخ قديمة على روابط عامة، احذفها كمان.

وإذا بتشتغل مع وكيل برمجة، `npx next@canary upgrade --agent` بلا سياسة (ولا `experimental.agentUpgrade` بـ `next.config`) بيستعمل سياسة `security`: إذا نسختك المستقرة مصابة، بيختار أحدث نسخة آمنة بأقدم خط رئيسي مؤهل. الأمر لسا تجريبي ([التوثيق](https://nextjs.org/docs/app/guides/upgrading/agent-upgrade)).

## شو بيفرق إذا تطبيقك على &lt;span dir="ltr"&gt;Netlify&lt;/span&gt; أو &lt;span dir="ltr"&gt;Vercel&lt;/span&gt; أو على سيرفرك؟

يلي بيتغيّر حسب الاستضافة هو أثر الثغرات على تطبيقك. على &lt;span dir="ltr"&gt;Netlify&lt;/span&gt;، حسب ملاحظتها، أثر تنتين منهن أخف، و&lt;span dir="ltr"&gt;Vercel&lt;/span&gt; ما نشرت ملاحظة منصة لحد 21 تشرين الأول 2026، وعلى سيرفرك إنت بتحمل الأثر كله.

### &lt;span dir="ltr"&gt;Netlify&lt;/span&gt;

الشركة نشرت ملاحظتها بنفس يوم الإعلان. حسبها، ثغرة `use cache` بتصيب التطبيقات يلي فيها الشرط متل أي مكان تاني. تحسين الصور بـ `next/image` بيمر على &lt;span dir="ltr"&gt;Netlify Image CDN&lt;/span&gt; مش على الـ &lt;span dir="ltr"&gt;function&lt;/span&gt; تبعك، بس `ImageResponse` بيشتغل جوّا الـ &lt;span dir="ltr"&gt;function&lt;/span&gt;. هونيك الأثر بيوقف عند وقوع الـ &lt;span dir="ltr"&gt;function&lt;/span&gt;، مش تنفيذ كود. وثغرة &lt;span dir="ltr"&gt;Server Actions&lt;/span&gt; أثرها قليل عندهم لأن الطلب يلي بياكل المعالج بـ &lt;span dir="ltr"&gt;function&lt;/span&gt; ما بيأثر على باقي الطلبات، بس الاستغلال ممكن يكبّر فاتورة الـ &lt;span dir="ltr"&gt;functions&lt;/span&gt;.

### &lt;span dir="ltr"&gt;Vercel&lt;/span&gt;

لحد 21 تشرين الأول 2026، [سجل تغييرات &lt;span dir="ltr"&gt;Vercel&lt;/span&gt;](https://vercel.com/changelog) ما فيه ملاحظة منصة عن هالثغرات متل ملاحظة &lt;span dir="ltr"&gt;Netlify&lt;/span&gt;. فالتعليمات يلي عندك هي إعلان &lt;span dir="ltr"&gt;Next.js&lt;/span&gt; نفسه: رقّي وانشر من جديد.

### سيرفرك أو &lt;span dir="ltr"&gt;Docker&lt;/span&gt;

ثغرة &lt;span dir="ltr"&gt;Server Actions&lt;/span&gt; بتعلّق العملية يلي وصلها الطلب، فإذا كل موقعك شغّال بعملية &lt;span dir="ltr"&gt;Node.js&lt;/span&gt; وحدة، الموقع كله بيوقف.

ثغرة &lt;span dir="ltr"&gt;SVG&lt;/span&gt; شرطها &lt;span dir="ltr"&gt;glibc&lt;/span&gt;، و&lt;span dir="ltr"&gt;Alpine&lt;/span&gt; مبنية على &lt;span dir="ltr"&gt;musl&lt;/span&gt; ([موقع &lt;span dir="ltr"&gt;Alpine&lt;/span&gt;](https://www.alpinelinux.org/about/))، فإذا صورة &lt;span dir="ltr"&gt;Docker&lt;/span&gt; تبعك &lt;span dir="ltr"&gt;Alpine&lt;/span&gt;، شرط &lt;span dir="ltr"&gt;glibc&lt;/span&gt; يلي بالتحذير ما بينطبق عليك. بس الخلل نفسه بـ &lt;span dir="ltr"&gt;librsvg&lt;/span&gt;، ونسخة &lt;span dir="ltr"&gt;sharp&lt;/span&gt; الجاهزة لـ &lt;span dir="ltr"&gt;musl&lt;/span&gt; فيها &lt;span dir="ltr"&gt;librsvg&lt;/span&gt; كمان ([قائمة مكتباتها](https://unpkg.com/@img/sharp-libvips-linuxmusl-x64@1.3.4/versions.json))، والباحث يلي لاقى الخلل كتب إنو وقوع العملية واحد من نتايجه. فرقّي متل أي حدا.

وصفحة تحذير &lt;span dir="ltr"&gt;sharp&lt;/span&gt; بتضيف إنو تشغيل &lt;span dir="ltr"&gt;Node.js&lt;/span&gt; مبني بخيار &lt;span dir="ltr"&gt;PIE&lt;/span&gt; بيمنع تنفيذ الكود، وإنو نسخ &lt;span dir="ltr"&gt;Node.js&lt;/span&gt; الرسمية مش مبنية هيك.

## ليش لازم تخطط تنقل من 15 لـ 16 هلق؟

لأن &lt;span dir="ltr"&gt;Next.js 15&lt;/span&gt; بمرحلة &lt;span dir="ltr"&gt;Maintenance LTS&lt;/span&gt;، يعني بياخد بس تصليحات حرجة وأمنية، وسياسة الدعم بتقول إنو كل نسخة رئيسية بتضل بهالمرحلة سنتين من إصدارها. و15 طلعت بـ 21 تشرين الأول 2024.

[صفحة سياسة الدعم](https://nextjs.org/support-policy) ما بتكتب تاريخ نهاية لـ 15. بس إذا حسبت سنتين من 21 تشرين الأول 2024، بتوصل لحوالي 21 تشرين الأول 2026. هاد حساب من نص السياسة، مش تاريخ مكتوب فيها. والسياسة بتقول كمان إنو الفريق ممكن يصلّح نسخ برّا الدعم بحالات نادرة، حسب خطورة الخلل.

خطة النقل حسب [دليل الترقية لـ 16](https://nextjs.org/docs/app/guides/upgrading/version-16):

1. حدّث &lt;span dir="ltr"&gt;Node.js&lt;/span&gt; لـ 20.9 أو أحدث، و&lt;span dir="ltr"&gt;TypeScript&lt;/span&gt; لـ 5.1 أو أحدث إذا بتستعمله.
2. شغّل الـ &lt;span dir="ltr"&gt;codemod&lt;/span&gt; الرسمي من مجلد المشروع:

```bash
npx @next/codemod@canary upgrade latest
```

3. راجع التغييرات يلي بتكسر: `cookies()` و`headers()` و`params` و`searchParams` صاروا &lt;span dir="ltr"&gt;async&lt;/span&gt; بس، وملف `middleware` صار اسمه `proxy` (إلا إذا الـ &lt;span dir="ltr"&gt;middleware&lt;/span&gt; تبعك على &lt;span dir="ltr"&gt;edge runtime&lt;/span&gt;: الدليل بيقول خليه `middleware`)، و&lt;span dir="ltr"&gt;Turbopack&lt;/span&gt; صار الافتراضي بـ `next dev` و`next build`، و`next lint` انشال.
4. ابنِ وجرّب الصفحات المهمة، وبعدين انشر.

لا تفتح &lt;span dir="ltr"&gt;Cache Components&lt;/span&gt; بس لأنك رقّيت: الدليل نفسه بيقول إنها ما لازم تنفتح لحتى تكمّل الترقية. والدليل بينصح كمان بوكيل برمجة للنقلة كلها: `npx next@canary upgrade --agent=latest` بيجهّز أدلة الترقية للوكيل، وبيطلب منه يطبّقها ويتأكد من التطبيق، وبيقدر يفتح جلسة &lt;span dir="ltr"&gt;Claude Code&lt;/span&gt; أو &lt;span dir="ltr"&gt;Codex&lt;/span&gt; منزّلة عندك. هون كمان الأمر تجريبي، فراجع التغييرات بنفسك قبل النشر.

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

شغّل `npx next --version` و`npm ls sharp` بمشروعك. إذا &lt;span dir="ltr"&gt;Next.js&lt;/span&gt; أقدم من 16.4.1 أو 15.5.28، أو &lt;span dir="ltr"&gt;sharp&lt;/span&gt; أقدم من 0.35.5، رقّي وابنِ وانشر اليوم.

الترقية بتسكّر ثغرات الإطار، بس الثغرات يلي بكودك إنت ما بتتصلّح بتحديث مكتبة: صلاحية ناقصة، أو مستخدم بيوصل لبيانات غيره بتغيير رقم بالرابط. [حزمة المهارات الأمنية](/products/security-skill-pack) (قريباً) رح تراجع كود مشروعك وتنبّهك على هيك ثغرات قبل النشر، وإنت يلي بتشغّلها.

الحزمة معروضة بقسم [مهارات &lt;span dir="ltr"&gt;AI&lt;/span&gt;](/products/c/ai-skills)، مع باقي المهارات الجاهزة لـ &lt;span dir="ltr"&gt;Claude Code&lt;/span&gt; ولأدوات الذكاء الاصطناعي.

وإذا بدك حدا يجرّب المنصة كلها متل ما بيجرّبها مهاجم، هاد شغل [مُحَصَّن](/muhassan).

شو النسخة يلي طلعتلك؟

## FAQ

**إذا تطبيقي Pages Router بس، لازم رقّي؟**

إي. ثغرة Server Actions ما بتصيب Pages Router، بس ثغرة الصور مع SVG صفحة تحذيرها ما بتحدد راوتر، وبتغطي النسخ من 10.0.0 لحد 15.5.27، ومن بعد 16.0.0 لحد 16.4.0.

**أنا على Next.js 14، في نسخة 14 مصلّحة؟**

لأ. صفحات التحذير بتسمّي 15.5.28 و16.4.1 بس كنسخ مصلّحة، وسياسة دعم Next.js بتحط 14 بين النسخ يلي برّا الدعم. أقرب حل إنك تنقل لـ 15.5.28 مع sharp 0.35.5، وبعدها لـ 16. وانتبه إنو السياسة بتعطي كل نسخة رئيسية سنتين من إصدارها، و15 طلعت بـ 21 تشرين الأول 2024، فنافذتها بتخلص حوالي 21 تشرين الأول 2026. خلي النقل لـ 16 قريب.

**هل 16.4.2 أحسن من 16.4.1؟**

إي، إذا ما في سبب يمنعك. 16.4.2 طلعت بـ 15 تشرين الأول 2026 وفيها تصليحات أغلبها لـ Turbopack، وهي بعد 16.4.0 يلي هي آخر نسخة مصابة. الإعلان طلع بـ 14 تشرين الأول، قبل ما تطلع 16.4.2 بيوم، فبيسمّي 16.4.1، أول نسخة مصلّحة.

**إذا بستعمل React Server Components بإطار غير Next.js، شو بعمل؟**

رقّي حزم react-server-dom-webpack أو react-server-dom-parcel أو react-server-dom-turbopack لـ 19.0.9 أو 19.1.10 أو 19.2.9 أو 19.3.1، حسب الخط يلي إنت عليه. هيك بتقول صفحات تحذير React للثغرتين الأصليتين.

**هل npm audit بينبّهني على هالثغرات؟**

مش على كلها. لحد 21 تشرين الأول 2026، قاعدة تحذيرات npm ما بترجع ولا تحذير لـ next على 16.4.0 أو 15.5.27، فالأمر بينبّهك بس إذا sharp أقدم من 0.35.5. اعتمد على رقم النسخة يلي عندك.
