
فهرست مطالب
- React2Shell چه بود و چرا خطرناک بود؟
- آسیبپذیریهای Next.js در سال ۲۰۲۶ کدام بودند؟
- از کجا بفهمیم سایت ما Next.js و App Router دارد؟
- فهرست نسخههای امن Next.js کدام است؟
- چطور آپدیت نکست جی اس را امن و سریع انجام دهیم؟
- کاهش سطح حمله در پیکربندی
- محدودیتها: وصله کردن چه چیزهایی را حل نمیکند؟
- از تجربه تیم siloow
- جمعبندی
- منابع
- سوالات متداول درباره امنیت Next.js
- آیا سایت Next.js با Pages Router در برابر React2Shell آسیبپذیر بود؟
- آخرین نسخه امن Next.js کدام است؟
- آیا راهی برای جلوگیری از این آسیبپذیریها بدون آپدیت وجود دارد؟
- بعد از وصله کردن چه کار دیگری باید انجام دهم؟
- اطلاعیههای امنیتی Next.js هر چند وقت منتشر میشوند؟
امنیت Next.js در یک سال گذشته به مهمترین موضوع برای صاحبان سایتها و وباپهای React رسیده است: از آسیبپذیری بحرانی React2Shell در دسامبر ۲۰۲۵ با امتیاز CVSS برابر ۱۰ که اجرای کد از راه دور (RCE) بدون احراز هویت را ممکن میکرد، تا آسیبپذیریهای بحرانی RCE و SSRF در انتشارهای امنیتی سپتامبر و اکتبر ۲۰۲۶. تنها راهحل رسمی همه این موارد، نصب نسخه وصلهشده است؛ هیچ راه دور زدن (workaround) کاملی اعلام نشده است.
نویسنده: تیم siloow (سیلو سولوشن) — آخرین بهروزرسانی: آبان ۱۴۰۵
وضعیت تا آبان ۱۴۰۵: آخرین نسخههای وصلهشده اعلامشده در وبلاگ رسمی Next.js در بهروزرسانی ۱۴ اکتبر ۲۰۲۶، نسخه ۱۶.۴.۱ برای شاخه Active LTS و ۱۵.۵.۲۸ برای شاخه Maintenance LTS هستند. انتشار امنیتی بعدی برای ۳ نوامبر ۲۰۲۶ با هفت آسیبپذیری با شدت متوسط اعلام شده است. این فهرست نسخهها با هر انتشار جدید تغییر میکند؛ همیشه آخرین نسخه را از وبلاگ رسمی بررسی کنید.
در این مقاله آسیبپذیریهای مهم Next.js و React Server Components را به ترتیب زمانی مرور میکنیم، فهرست نسخههای امن هر شاخه را میدهیم و یک چکلیست عملی برای وصله کردن و پس از وصله ارائه میکنیم.
React2Shell چه بود و چرا خطرناک بود؟
React2Shell نام آسیبپذیری بحرانی پروتکل React Server Components است که در ۳ دسامبر ۲۰۲۵ اعلام شد و در React با شناسه CVE-۲۰۲۵-۵۵۱۸۲ و در Next.js با شناسه CVE-۲۰۲۵-۶۶۴۷۸ ثبت شد. طبق اطلاعیه امنیتی Next.js، این آسیبپذیری امتیاز CVSS برابر ۱۰ داشت و میتوانست هنگام پردازش درخواستهای ساختهشده توسط مهاجم، به اجرای کد از راه دور روی سرور منجر شود.
دامنه آسیب طبق همان اطلاعیه:
- آسیبپذیر: برنامههای App Router با React Server Components روی Next.js ۱۵.x، ۱۶.x و نسخههای canary از ۱۴.۳.۰-canary.۷۷ به بعد.
- غیرآسیبپذیر: Next.js ۱۳.x، نسخه پایدار ۱۴.x، برنامههای Pages Router و Edge Runtime.
- اقدام تکمیلی: Vercel توصیه کرد اگر برنامه تا ۴ دسامبر ۲۰۲۵ ساعت ۱ بعدازظهر به وقت اقیانوس آرام آنلاین و وصلهنشده بوده، همه رمزها و کلیدهای آن (secrets) تعویض شوند.
یک هفته بعد، در ۱۱ دسامبر ۲۰۲۵، دو آسیبپذیری دیگر در RSC پیدا شد که هیچکدام اجرای کد نبودند: حمله منع سرویس (DoS) با شدت بالا (CVE-۲۰۲۵-۵۵۱۸۴ که وصله کامل آن با CVE-۲۰۲۵-۶۷۷۷۹ منتشر شد) و افشای کد منبع Server Functionها با شدت متوسط (CVE-۲۰۲۵-۵۵۱۸۳). طبق بهروزرسانی امنیتی ۱۱ دسامبر، افشای کد میتوانست رمزهایی را که مستقیماً در کد نوشته شده بودند لو بدهد.

آسیبپذیریهای Next.js در سال ۲۰۲۶ کدام بودند؟
در سال ۲۰۲۶، Next.js چندین انتشار امنیتی داشت که مهمترین آنها در سپتامبر و اکتبر شامل آسیبپذیریهای بحرانی RCE و SSRF با شدت بالا بودند. جدول زیر خلاصه موارد مهم را بر اساس اطلاعیههای رسمی نشان میدهد:
| تاریخ | آسیبپذیری | شدت | چه برنامههایی آسیبپذیرند | نسخه وصلهشده |
|---|---|---|---|---|
| ۳ دسامبر ۲۰۲۵ | React2Shell: اجرای کد از راه دور در RSC (CVE-۲۰۲۵-۶۶۴۷۸) | بحرانی (CVSS ۱۰) | App Router در ۱۵.x و ۱۶.x | از جمله ۱۵.۵.۷ و ۱۶.۰.۷ |
| ۱۱ دسامبر ۲۰۲۵ | DoS و افشای کد منبع در RSC | بالا و متوسط | App Router در ۱۳.۳ به بعد | از جمله ۱۴.۲.۳۵، ۱۵.۵.۹ و ۱۶.۰.۱۰ |
| ۳۰ سپتامبر ۲۰۲۶ | SSRF در Image Optimization (CVE-۲۰۲۶-۹۴۴۸۳) | بالا | فقط اگر images.remotePatterns تنظیم شده باشد | ۱۶.۳.۸ و ۱۵.۵.۲۷ |
| ۳۰ سپتامبر ۲۰۲۶ | مسمومسازی کش صفحات SSG و ISR | متوسط | بهخصوص برنامههای self-hosted | ۱۶.۳.۸ و ۱۵.۵.۲۷ |
| ۱۴ اکتبر ۲۰۲۶ | RCE در توابع use cache که چند typed array برمیگردانند | بحرانی | App Router با Cache Components | ۱۶.۴.۱ و ۱۵.۵.۲۸ |
| ۱۴ اکتبر ۲۰۲۶ | RCE در Image Optimization هنگام پردازش SVG (CVE-۲۰۲۶-۹۶۸۸۹) | بحرانی | اجرا روی لینوکس مبتنی بر glibc | ۱۶.۴.۱ و ۱۵.۵.۲۸ (یا sharp ۰.۳۵.۵ به بعد) |
| ۱۴ اکتبر ۲۰۲۶ | DoS با Server Actions | بالا | App Router با حداقل یک Server Action | ۱۶.۴.۱ و ۱۵.۵.۲۸ |
جزئیات کامل در اطلاعیههای انتشار امنیتی سپتامبر ۲۰۲۶ و بهروزرسانی امنیتی ۱۴ اکتبر ۲۰۲۶ آمده است. انتشار سپتامبر همچنین یک مشکل افشای اطلاعات با شدت کم در endpoint پروتکل MCP سرور توسعه (next dev) را رفع کرد که فقط محیط توسعه را تحت تأثیر قرار میداد.
از کجا بفهمیم سایت ما Next.js و App Router دارد؟
بسیاری از صاحبان کسبوکار نمیدانند سایتشان با چه فناوریای ساخته شده است، و همین باعث میشود اطلاعیههای امنیتی Next.js را نادیده بگیرند. چند راه ساده برای تشخیص:
- از تیم توسعه یا پیمانکار بپرسید: مطمئنترین راه است؛ فایل
package.jsonپروژه نسخه دقیقnextرا نشان میدهد. - ساختار پروژه را ببینید: وجود پوشه
appدر ریشه یا داخلsrcیعنی App Router؛ پوشهpagesیعنی Pages Router. برخی پروژهها هر دو را دارند. - کد منبع صفحه را بررسی کنید: مسیرهایی مثل
/_next/static/در HTML صفحه نشان میدهد سایت با Next.js ساخته شده است. - قرارداد پشتیبانی را مرور کنید: اگر سایت توسط فریلنسر یا شرکتی ساخته شده که دیگر پشتیبانی نمیکند، احتمال وصلهنشده ماندن آن بالاست.
اگر سایت شما وردپرسی است و فرانتاند جدا ندارد، این آسیبپذیریها مستقیماً به آن مربوط نیستند؛ اما در پروژههای وردپرس هدلس که فرانتاند با Next.js ساخته شده، هر دو بخش باید جداگانه بهروز نگه داشته شوند.
فهرست نسخههای امن Next.js کدام است؟
نکته مهم: نسخههایی که در این مقاله آمده، وضعیت تا آبان ۱۴۰۵ را نشان میدهند و با هر انتشار امنیتی جدید تغییر میکنند. پیش از هر بهروزرسانی، همیشه آخرین نسخه وصلهشده را از اطلاعیههای امنیتی رسمی Next.js در GitHub و وبلاگ رسمی Next.js بررسی کنید.
نسخه امن Next.js یعنی آخرین نسخه وصلهشده در شاخهای که از آن استفاده میکنید. از ژوئیه ۲۰۲۶، Next.js دو شاخه را با وصله امنیتی پشتیبانی میکند و در اطلاعیهها آنها را Active LTS و Maintenance LTS مینامد:
| شاخه | وضعیت | آخرین نسخه وصلهشده (تا ۱۴ اکتبر ۲۰۲۶) | توصیه |
|---|---|---|---|
| 16.x | Active LTS | 16.4.1 | ارتقا به آخرین ۱۶.۴.x |
| 15.x | Maintenance LTS | 15.5.28 | ارتقا به آخرین ۱۵.۵.x و برنامهریزی مهاجرت به ۱۶ |
| 14.x | وصلههای دسامبر ۲۰۲۵ تا ۱۴.۲.۳۵ | در اطلاعیههای ۲۰۲۶ ذکر نشده | مهاجرت به شاخه پشتیبانیشده |
| ۱۳.x و قدیمیتر | خارج از اطلاعیههای اخیر | — | مهاجرت فوری |
نکته: انتشار امنیتی ۳ نوامبر ۲۰۲۶ نسخههای جدیدتری از هر دو شاخه منتشر میکند. عدد دقیق را از وبلاگ رسمی Next.js بگیرید، نه از این جدول یا از مقالههای دست دوم.
چطور آپدیت نکست جی اس را امن و سریع انجام دهیم؟
آپدیت نکست جی اس برای وصله امنیتی معمولاً یک تغییر نسخه فرعی (patch) است و تغییر کد لازم ندارد؛ بنابراین سریعترین و کمریسکترین نوع ارتقاست. دستورهای کلیدی:
# نسخه نصبشده Next.js و React را ببینید
npm ls next react react-dom
# ابزار رسمی بررسی و ارتقای نسخه برای React2Shell
npx fix-react2shell-next
# ارتقا به آخرین نسخه وصلهشده هر شاخه (تا آبان ۱۴۰۵)
npm install next@16.4.1 # شاخه 16.4 (Active LTS)
npm install next@15.5.28 # شاخه 15.5 (Maintenance LTS)
# بررسی آسیبپذیری وابستگیها
npm audit --omit=dev چکلیست کامل وصله کردن:
- نسخه فعلی را مشخص کنید: با
npm ls nextنسخه واقعی نصبشده در lockfile را ببینید، نه فقط عدد package.json. - به آخرین نسخه وصلهشده همان شاخه بروید: این کار کمترین احتمال شکستن کد را دارد.
- lockfile را commit و دوباره build کنید: وصله تا زمانی که build جدید deploy نشود اثری ندارد.
- وابستگیهای جانبی را بررسی کنید: برای آسیبپذیری SVG، نسخه
sharpباید ۰.۳۵.۵ یا بالاتر باشد. - رمزها را تعویض کنید: اگر برنامه در بازه React2Shell وصلهنشده آنلاین بوده، کلیدهای API، رمز دیتابیس و توکنها را عوض کنید.
- لاگها را بررسی کنید: به دنبال درخواستهای غیرعادی به Server Actions، مصرف ناگهانی CPU یا فرایندهای ناشناخته روی سرور باشید.
- اطلاعرسانی را خودکار کنید: اطلاعیههای امنیتی Next.js تقریباً ماهانه و با اعلام قبلی منتشر میشوند؛ آنها را در تقویم تیم بگذارید.

کاهش سطح حمله در پیکربندی
جدا از وصله، بخشی از ریسک با پیکربندی درست کم میشود. مثلاً آسیبپذیری SSRF سپتامبر ۲۰۲۶ فقط برنامههایی را تحت تأثیر قرار میداد که images.remotePatterns داشتند؛ پس الگوهای مجاز را تا حد ممکن محدود کنید:
// next.config.ts — محدود کردن دقیق منابع تصویر خارجی
const nextConfig = {
images: {
remotePatterns: [
{ protocol: 'https', hostname: 'cdn.example.com', pathname: '/uploads/**' },
],
// پیشفرض Next.js 16: بهینهسازی IP محلی مسدود است
dangerouslyAllowLocalIP: false,
maximumRedirects: 3,
},
};
export default nextConfig; چند اصل دیگر: رمزها را هرگز مستقیماً در کد Server Functionها ننویسید و از متغیرهای محیطی در زمان اجرا استفاده کنید؛ Server Actionهایی که استفاده نمیشوند را حذف کنید؛ و دسترسی به next dev را فقط روی ماشین توسعهدهنده نگه دارید.
محدودیتها: وصله کردن چه چیزهایی را حل نمیکند؟
- اگر سرور قبل از وصله آلوده شده باشد، بهروزرسانی نسخه بدافزار یا دسترسی ایجادشده را پاک نمیکند؛ بررسی سرور و تعویض رمزها لازم است.
- WAF و قوانین فایروال میزبانها میتوانند حملههای شناختهشده را موقتاً مسدود کنند، اما طبق اطلاعیههای رسمی جایگزین وصله نیستند.
- وصله کردن Next.js امنیت کد خودتان (اعتبارسنجی ورودی، کنترل دسترسی در Server Actions) را تضمین نمیکند.
- جزئیات فنی برخی آسیبپذیریها عمداً محدود منتشر شده تا از سوءاستفاده جلوگیری شود؛ بنابراین ارزیابی دقیق اینکه آیا سایت شما هدف قرار گرفته یا نه، همیشه ممکن نیست.
از تجربه تیم siloow
تیم siloow برای وباپهای React و Next.js که نگهداری میکند، بعد از React2Shell یک روال ثابت گذاشت: هر اطلاعیه امنیتی Next.js و React در همان روز بررسی میشود، شاخه و نسخه هر پروژه در یک فهرست مرکزی ثبت است و وصلههای امنیتی بدون انتظار برای چرخه انتشار معمولی deploy میشوند. درس اصلی ما این بود که پروژههایی که سالها روی یک نسخه قدیمی مانده بودند، در روز بحران بیشترین زمان را گرفتند، چون ابتدا باید چند نسخه اصلی ارتقا مییافتند تا وصله قابل نصب شود. همین تجربه در وردپرس هم تکرار میشود؛ اصول مشابه را در چکلیست امنیت وردپرس در ۲۰۲۶ نوشتهایم.
جمعبندی
- React2Shell (دسامبر ۲۰۲۵) با CVSS ۱۰ اجرای کد از راه دور در App Router را ممکن میکرد و تنها راهحل، وصله بود.
- در سپتامبر و اکتبر ۲۰۲۶ آسیبپذیریهای بحرانی RCE در
use cacheو Image Optimization و SSRF با شدت بالا وصله شدند. - تا ۱۴ اکتبر ۲۰۲۶، نسخههای امن ۱۶.۴.۱ و ۱۵.۵.۲۸ بودند و انتشار بعدی ۳ نوامبر ۲۰۲۶ است.
- پس از وصله، build و deploy جدید، بررسی
sharpو در صورت لزوم تعویض رمزها را فراموش نکنید. - اطلاعیههای ماهانه Next.js را دنبال کنید و پروژه را روی شاخه پشتیبانیشده نگه دارید.
اگر وباپلیکیشن Next.js یا React دارید و مطمئن نیستید روی نسخه امن است، یا برای بررسی سرور پس از یک آسیبپذیری به کمک نیاز دارید، خدمات امنیت و پشتیبانی وب siloow را ببینید. برای مهاجرت به شاخه جدید، راهنمای Next.js ۱۶ و نکات مهاجرت و برای انتخاب بین سایت معمولی و وباپ، مقاله تفاوت سایت و وب اپلیکیشن را بخوانید. اگر فرانتاند شما روی React است، مرور React 19.3 و قابلیت Trusted Types آن هم مفید است. خبرهای امنیتی بعدی را در مگ siloow دنبال کنید.
منابع
- Security Advisory: CVE-2025-66478 — Next.js Blog
- Next.js Security Update: December 11, 2025 — Next.js Blog
- Next.js Security Update for Upstream Vulnerabilities (October 14, 2026) — Next.js Blog
- Critical Security Vulnerability in React Server Components — React Blog
سوالات متداول درباره امنیت Next.js
آیا سایت Next.js با Pages Router در برابر React2Shell آسیبپذیر بود؟
خیر. طبق اطلاعیه رسمی، برنامههای Pages Router، Edge Runtime، Next.js ۱۳.x و نسخه پایدار ۱۴.x تحت تأثیر React2Shell نبودند. با این حال برخی آسیبپذیریهای بعدی مثل مسمومسازی کش، Pages Router را هم شامل میشدند، پس بهروزرسانی همچنان لازم است.
آخرین نسخه امن Next.js کدام است؟
تا بهروزرسانی ۱۴ اکتبر ۲۰۲۶، نسخههای وصلهشده ۱۶.۴.۱ و ۱۵.۵.۲۸ بودند. انتشار امنیتی بعدی برای ۳ نوامبر ۲۰۲۶ اعلام شده است؛ همیشه عدد دقیق را از وبلاگ رسمی nextjs.org بررسی کنید.
آیا راهی برای جلوگیری از این آسیبپذیریها بدون آپدیت وجود دارد؟
برای React2Shell و آسیبپذیریهای RSC، اطلاعیه رسمی صریحاً میگوید هیچ راه دور زدنی وجود ندارد و ارتقا لازم است. فقط برای آسیبپذیری SVG، ارتقای sharp به ۰.۳۵.۵ بهعنوان راه موقت معرفی شده است.
بعد از وصله کردن چه کار دیگری باید انجام دهم؟
build و deploy جدید انجام دهید، لاگها را برای فعالیت مشکوک بررسی کنید و اگر برنامه در بازه React2Shell وصلهنشده آنلاین بوده، همه رمزها و کلیدهای API را تعویض کنید.
اطلاعیههای امنیتی Next.js هر چند وقت منتشر میشوند؟
از ژوئیه ۲۰۲۶ Next.js برنامه انتشار امنیتی منظم دارد و تقریباً ماهانه با اعلام قبلی در وبلاگ رسمی منتشر میشود. برای موارد فوری یا آسیبپذیریهایی که در حال سوءاستفادهاند، وصله خارج از برنامه هم منتشر میشود.
منبع: nextjs.org


