آسیب‌پذیری

آسیب‌پذیری بسیار بحرانی در React Server Components و Next.js با درجه اهمیت 10 (CVE-2025-55182 و CVE-2025-66478)

چهارشنبه – 12 آذر 1404 تیم React و سپس تیم Next.js یک آسیب‌پذیری امنیتی بسیار بحرانی را در بلاگ‌های خود افشا کردند که در پروتکل React Server Components (RSC) و پیاده‌سازی‌های مرتبط با آن کشف شده است. این آسیب‌پذیری با درجه اهمیت CVSS 10.0 ثبت شده و امکان اجرای کد از راه دور (Remote Code Execution) را بدون نیاز به احراز هویت فراهم می‌کند.

این نقص امنیتی ابتدا با کد CVE-2025-55182 برای React گزارش شد و سپس اثرات آن در Next.js با کد CVE-2025-66478 منتشر گردید.

خلاصهٔ آسیب‌پذیری

این آسیب‌پذیری به دلیل یک نقص در نحوه پردازش و دسیریالایز کردن درخواست‌های ورودی در React Server Components و React Server Functions ایجاد می‌شود.

یک مهاجم می‌تواند با ارسال یک درخواست HTTP مخرب به هر Endpoint مربوط به RSC، منجر به اجرای کد دلخواه روی سرور شود.

نکته مهم این است که حتی اگر اپلیکیشن شما از Server Functions استفاده نکند، اما از React Server Components پشتیبانی کند، همچنان آسیب‌پذیر است.

چرا این آسیب‌پذیری بسیار خطرناک است؟

  • بدون نیاز به احراز هویت (Unauthenticated)
  • اجرای کد روی سرور (Remote Code Execution)
  • امکان دسترسی کامل به سیستم زیرساختی
  • نفوذ از طریق یک درخواست HTTP ساده

این سطح از آسیب‌پذیری با توجه به درجه اهمیت 10 نشان‌دهندهٔ تهدیدی در سطح پایین‌ترین لایه امنیتی سیستم‌هاست.

گام مهم: چرخش (Rotate) همه متغیرهای محیطی

اگر اپلیکیشن شما تا قبل از ۴ دسامبر ۲۰۲۵ آنلاین و آسیب‌پذیر بوده، باید:

  • تمام Secrets ها (کلیدها، رمزها، API Token ها و…) را فوراً تعویض کنید.
  • اولویت با حساس‌ترین اطلاعات است.
  • این یعنی احتمال نشت API Key، Database Password، JWT Secret و… وجود دارد.

چه پروژه‌هایی آسیب‌پذیر هستند؟

React (CVE-2025-55182)

نسخه‌های زیر آسیب‌پذیر هستند:

  • react-server-dom-webpack — نسخه‌های 19.0، 19.1.0، 19.1.1، 19.2.0
  • react-server-dom-parcel — نسخه‌های 19.0، 19.1.0، 19.1.1، 19.2.0
  • react-server-dom-turbopack — نسخه‌های 19.0، 19.1.0، 19.1.1، 19.2.0

Next.js (CVE-2025-66478)

اپلیکیشن‌هایی که از App Router و RSC استفاده می‌کنند و مبتنی بر نسخه‌های زیر هستند، آسیب‌پذیرند:

  • Next.js 15.x
  • Next.js 16.x
  • Next.js 14.3.0-canary.77 به بعد (نسخه‌های آزمایشی)

نسخه‌های غیر آسیب‌پذیر:

  • Next.js 13.x
  • Next.js 14.x نسخه پایدار
  • Pages Router
  • Edge Runtime

نسخه‌های رفع‌شده (Patched Versions)

نسخه‌های اصلاح‌شده برای React:

  • 19.0.1
  • 19.1.2
  • 19.2.1

نسخه‌های اصلاح‌شده برای Next.js:

  • 15.0.5
  • 15.1.9
  • 15.2.6
  • 15.3.6
  • 15.4.8
  • 15.5.7
  • 16.0.7

پچ نسخه‌های canary:

  • 15.6.0-canary.58
  • 16.1.0-canary.12

اقدامات فوری برای کاربران Next.js

دستورالعمل رسمی Next.js (منبع: Vercel)

npm install next@15.0.5   # for 15.0.x
npm install next@15.1.9   # for 15.1.x
npm install next@15.2.6   # for 15.2.x
npm install next@15.3.6   # for 15.3.x
npm install next@15.4.8   # for 15.4.x
npm install next@15.5.7   # for 15.5.x
npm install next@16.0.7   # for 16.0.x
 
npm install next@15.6.0-canary.58   # for 15.x canary releases
npm install next@16.1.0-canary.12   # for 16.x canary releases

اگر از نسخه‌های آزمایشی Next.js 14.3.0-canary.77 یا بالاتر استفاده می‌کنید:

npm install next@14

همچنین ابزار رسمی رفع مشکل Next.js منتشر شده است:

npx fix-react2shell-next

اقدامات فوری برای کاربران React

دستورالعمل رسمی React (منبع: React Blog)

اگر از APIهای ناپایدار RSC در React Router استفاده می‌کنید، در صورت وجود، باید وابستگی‌های زیر در فایل package.json را ارتقا دهید:

npm install react@latest
npm install react-dom@latest
npm install react-server-dom-parcel@latest
npm install react-server-dom-webpack@latest
npm install @vitejs/plugin-rsc@latest

Expo

برای آگاهی بیشتر درباره روش‌های کاهش ریسک، مقاله منتشر شده در آدرس زیر را مطالعه کنید:
expo.dev/changelog

Redwood SDK

اطمینان حاصل کنید که نسخه ‌SDK برابر یا بالاتر از مقدار زیر باشد:

rwsdk>=1.0.0-alpha.0

برای دریافت آخرین نسخه بتا:

npm install rwsdk@latest

به‌روزرسانی به آخرین نسخه react-server-dom-webpack:

npm install react@latest react-dom@latest react-server-dom-webpack@latest

برای دستورالعمل های بیشتر migration به مستندات Redwood مراجعه کنید.

Waku

برای ارتقای Waku و پکیج‌های مرتبط، دستور زیر را اجرا کنید:

npm install react@latest react-dom@latest react-server-dom-webpack@latest waku@latest

برای دستورالعمل های بیشتر migration به مستندات Waku مراجعه کنید.

@vitejs/plugin-rsc

به‌روزرسانی به آخرین نسخه افزونه RSC:

npm install react@latest react-dom@latest @vitejs/plugin-rsc@latest

react-server-dom-parcel

به‌روزرسانی به آخرین نسخه:

npm install react@latest react-dom@latest react-server-dom-parcel@latest

react-server-dom-turbopack

به‌روزرسانی به آخرین نسخه:

npm install react@latest react-dom@latest react-server-dom-turbopack@latest

react-server-dom-webpack

به‌روزرسانی به آخرین نسخه:

npm install react@latest react-dom@latest react-server-dom-webpack@latest

جمع‌بندی

این آسیب‌پذیری یکی از خطرناک‌ترین رخدادهای امنیتی تاریخ اکوسیستم React و Next.js است.
اگر از RSC یا App Router استفاده می‌کنید:
فوراً نسخه‌های Next.js و React را ارتقا دهید
سپس تمام Secrets را Rotate کنید
اپ را مجدداً Deploy کنید.

Next.js security advisory (CVE-2025-66478)React security advisory (CVE-2025-55182)React blog: Critical Security Vulnerability in React Server ComponentsVercel Knowledge Base: React2Shell Security BulletinNetlify Blog: Netlify’s response to the critical React security vulnerabilityAWS Security Blog: China-nexus cyber threat groups rapidly exploit React2Shell vulnerabilityGoogle Cloud Blog: Responding to CVE-2025-55182: Secure your React and Next.js workloadsFastly Blog: Fastly’s Proactive Protection for React2Shell, Critical React RCE CVE-2025-55182 and CVE-2025-66478Akamai Blog: CVE-2025-55182: React and Next.js Server Functions Deserialization RCE

مهرداد تاری

تلاش میکنم مطالبی منتشر کنم که از اعتبار و کیفیت بالایی برخوردار باشند. خواهشمندم در صورت مشاهده اشکال، حتما مرا مطلع سازید. سپاس TARIMEHR

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا