جستجو برای:
سبد خرید 0
  • صفحه اصلی
  • وبلاگ
  • تماس با ما
  • درباره ما
logo-frontendi-150
0
  • خانه
  • دوره ها
  • وبلاگ فِرانت اِندی
  • تماس با ما
ورود / عضویت
  • صفحه اصلی
  • وبلاگ
  • تماس با ما
  • درباره ما
ورود / عضویت

وبلاگ

فرانت اندی > وبلاگ فِرانت اِندی > ری اکت > همین الان React و Next.js رو آپدیت کنید! ( خطر امنیتی جدی⚠️)

همین الان React و Next.js رو آپدیت کنید! ( خطر امنیتی جدی⚠️)

18 آذر 1404
ارسال شده توسط احمد احمدنژاد
ری اکت
Critical Security Vulnerability in React Server Components

حفره امنیتی خیلی خیلی خطرناکی تو React و Next.js پیدا شده که احتمالا شماهم خبرشو شنیده باشید!

اگه پروژه ری اکتی دارید اکیدا پیشنهاد میکنم این حفره امنیتی رو جدی بگیرید ..

روز اول که خبرش منتشر شد، فکرکردم یه باگ معمولی مثل بقیه باگ هاست ولی وقتی جزئیاتش رو خوندم دیدم نه!

قضیه خیلی جدی تر از این حرفاست و گفتم سریع بیام اینجا به شما هم بگم که اگر پروژه ری اکتی یا مبتنی بر ری اکت ( مثل Next.js ) دارید، همین الان جلوی این حفره امنیتی خیلی خطرناک رو بگیرید!

داستان چیه ؟

داستان از این قراره که یه حفره امنیتی خیلی خطرناک (از اونایی که امتیازش ۱۰ از ۱۰ شده!) توی React و Next.js پیدا شده.

اسم فنی-اش CVE-2025-66478 هست ولی ما بهش میگیم کابوس RSC !

ما فرانت‌اند دولوپرها این روزها خیلی درگیر React Server Components (RSC) شدیم و داریم با Next.js 15 و فیچرهای جدیدش حال میکنیم 🙂

اگه نمیدونید سرور کامپوننت چیه، پیشنهاد میکنم مقاله سرور کامپوننت در ری اکت رو مطالعه کنید ) چون این باگ امنیتی تو RSC پیدا شده.

ظاهراً توی پروتکل ارتباطی ریکت (همون Flight Protocol معروف) یه سوتی امنیتی بزرگ داده شده.

به زبون ساده بخوام بگم:

یه هکر میتونه بدون اینکه حتی توی سایت شما لاگین کنه، یه سری درخواست خاص بفرسته و مستقیم روی سروری که نود جی اس داره اجرا میشه، کد مخرب ران کنه (RCE).

یعنی چی؟

یعنی می‌تونه دیتابیس رو بخونه، متغیرهای محیطی (.env) رو برداره و عملاً Key رو ازت بگیره! حتی میتونه کد و اسکریپت دلخواهشو روی سرور شما Run کنه.

تو این چندروز، سرور های خیلی خیلی زیادی آلوده به کد های ماینر شدن ( یعنی هکر ها کد ماینر Run کردن روی سرور هایی که ری اکت یا Next.js روشون بوده )

باید نگران CVE-2025-66478 باشیم ؟!

اگه مثل من عشقِ استفاده از آخرین تکنولوژی‌ها هستید، احتمالاً در خطرید!

تو لیست زیر، نسخه های آسیب پذیر قرار داده شده ..

چیکار کنیم که پروژمون امن بشه ؟

تیم ری اکت، برای نسخه های آسیب پذیر پچ امنیتی منتشر کرده، پس اگه از نسخه های مشکل دار استفاده میکنید، سریعا نکست جی اس خودتون رو به ورژن امن آپدیت کنید :

				
					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
				
			

اگه از ری اکت و React Router استفاده میکنید، دستور های زیر رو اجرا کنید :

				
					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
				
			

این اتفاق چیو بهمون ثابت کرد ؟؟

ما فِرانت اِند دولوپر ها، فقط مسئول خوشگلی دکمه ها و انیمیشن ها نیستیم!

الان که مرز بین فرانت و بک اند با RSC برداشته شده، مسئولیت امنیت کدمون هم خیلی سنگین تر شده 🙂

حتماً پروژه های شرکت یا پروژه های شخصی خودتون رو چک کنید. یه آپدیت ۵ دقیقه ای ممکنه جلوی یه فاجعه بزرگ رو بگیره.

مواظب خودتون و کدهاتون باشید! ✌️🖤

ریشه این سوتی امنیتی کجا بود ؟!

ریشه این آسیب پذیری در لایه Deserialization پروتکل React Flight وجود داشت! زمانی که سرور در حال پردازش Payloadهای ورودی از سمت کلاینت هست، اعتبارسنجی کافی روی Client References انجام نمیداد. این به مهاجم اجازه میده تا با ساختن یک Payload دستکاری شده (Crafted Payload)، کلاس ها یا توابع داخلی Node.js رو فراخوانی کنه و کد دلخواه خودش رو در کانتکست سرور اجرا کنه (RCE).

وقتی ما از Server Actions استفاده می‌کنیم یا کلاینت درخواستی به سرور می‌فرسته، React از یه فرمت متنی خاص (نه JSON معمولی) استفاده می‌کنه که بهش میگن Flight Protocol.

یه نمونه از دیتای Flight این شکلیه:

 
				
					1:I["./src/components/Button.js", ["Chunks"], "Button"]
				
			

مشکل اصلی “اعتماد بیجا به ورودی کلاینت هنگام Deserialization” بوده.

وقتی سرور این رشته های متنی رو از کلاینت میگیره، باید اونها رو دوباره تبدیل کنه به آبجکت‌های جاوااسکریپتی یا فراخوانی توابع.

در نسخه های باگ دار، مکانیزم پارسر (Parser) ریکت، چک نمیکرد که آیا ماژولی که کلاینت درخواست داده (مثلاً توی اون رشته بالا)، یه ماژول امن و مجاز هست یا نه.

 

هکر فلان فلان شده میاد ریکوئست رو دستکاری میکنه. به جای اینکه بگه: “لطفاً کامپوننت دکمه رو لود کن” میگه: “لطفاً ماژول سیستمی Node.js (مثل child_process) رو لود کن و تابع exec رو اجرا کن.”

کد مخرب هکر توی درخواست Flight ممکنه این شکلی باشه (به زبان ساده):

 
				
					0:I["module:child_process", [], "exec"]
1:("rm -rf /") 
				
			

چون React (در نسخه‌های پچ نشده) این درخواست رو بازسازی و اجرا میکرد، دستور مستقیماً روی سرور ران میشد!

مثل اتفاقی که اخیرا افتاد و خیلی از هکر ها کد های ماینر روی سرور های Node.js ری اکت و Next.js اجرا کردن 🙂

منابع : 

ری اکت

نکست جی اس

درباره احمد احمدنژاد

من یه برنامه نویس و توسعه دهنده وب هستم که عاشق دنیای صفر و یکم❤️

نوشته‌های بیشتر از احمد احمدنژاد
قبلی معماری ماژولار در پروژه های ری اکت !

پست های مرتبط

ماژولار در ری اکت - ماژولار در React

11 مهر 1404

معماری ماژولار در پروژه های ری اکت !

احمد احمدنژاد
ادامه مطلب
هوک useFormStatus در ری اکت - هوک useFormStatus در ریکت - هوک useFormStatus در React

19 مرداد 1404

هوک useFormStatus در ری اکت ! ( بررسی مبتدی تا پیشرفته )

احمد احمدنژاد
ادامه مطلب
هوک useActionState در ری اکت - هوک useActionState در ریکت - هوک useActionState در React

18 مرداد 1404

هوک useActionState در ری اکت ! ( بررسی مبتدی تا پیشرفته )

احمد احمدنژاد
ادامه مطلب
هوک useOptimistic در ری اکت - هوک useOptimistic در ریکت - هوک useOptimistic در React

18 مرداد 1404

هوک useOptimistic در ری اکت ! ( بررسی مبتدی تا پیشرفته )

احمد احمدنژاد
ادامه مطلب
معماری MRAH در ری اکت - معماری MRAH در React - معماری MRAH در ریکت

15 مرداد 1404

معماری MRAH در ری اکت و هرچیزی که باید ازش بدونیم!

احمد احمدنژاد
ادامه مطلب

دیدگاهتان را بنویسید لغو پاسخ

جستجو برای:
پیاده سازی و مشاوره فِرانت اِند!

پیاده سازی اصولی و بهینه پروژه های فِرانت اِند در کمترین زمان ممکن 🙂

پیاده سازی و مشاوره

صفحات فِرانت اِندی
  • وبلاگ
  • تماس با ما
  • درباره ما
تماس با ما
  • [email protected]
  • 09102944692
شبکه های اجتماعی
Youtube Instagram Telegram