ریکت (React) به عنوان یکی از محبوبترین کتابخانههای فرانتاند دنیا، در معماری مدرن خود از کامپوننتهای سمت سرور (RSC) و پروتکل اختصاصی Flight برای استریم رابطهای کاربری تعاملی استفاده میکند. این رویکرد نوین، تجربه توسعه و عملکرد اپلیکیشنها را متحول کرده، اما همان مکانیزمی که این سرعت و انعطافپذیری را به ارمغان آورده، درهای خطرناکی هم به روی مهاجمان باز میگذارد.
به تازگی محقق امنیت سایبری، «دورگش پوار» (Durgesh Pawar)، مکانیزمهای پشت آسیبپذیری «React2Shell» را تشریح کرده است؛ حفرهای با بالاترین امتیاز خطر یعنی CVSS 10.0. او نشان میدهد که چگونه دستکاری پروتکل Flight میتواند از طریق سینکهای دِسریالایزیشن (Deserialization Sinks) به اجرای کد از راه دور (RCE) ختم شود و کنترل کامل سرور را در اختیار مهاجم قرار دهد.
پروتکل Flight، دادهها را به صورت سریالایز شده بین سرور و کلاینت جابهجا میکند. اگر ورودیهای کاربر به درستی فیلتر و اعتبارسنجی نشوند، مهاجمان میتوانند با تزریق بارهای مخرب، منطق دِسریالایزیشن را فریب داده و دستورات دلخواه خود را روی سرور اجرا کنند. این موضوع برای پروژههای مبتنی بر Next.js و اپلیکیشنهای وب مدرن یک تهدید جدی به شمار میرود.
به نقل از کدیران کشف حفره React2Shell با امتیاز خطرناک CVSS 10.0 یک زنگ خطری جدی برای جامعه توسعهدهندگان وب است، بهویژه برای پروژههای مبتنی بر React و Next.js. پروتکل Flight که قلب تپنده کامپوننتهای سمت سرور (RSC) به شمار میرود، سرعت و تجربه کاربری بهتری را به ارمغان آورده، اما در عین حال سطح حمله گستردهتری را هم ایجاد کرده است. مسئله کلیدی اینجاست که بسیاری از توسعهدهندگان به طور پیشفرض فرض میکنند ابزارهای محبوب و متنباز به صورت خودکار امن هستند؛ در حالی که هر مکانیزم انتقال دادهای که درگیر سریالایزیشن و دِسریالایزیشن باشد، میتواند به نقطه ورود مهاجمان تبدیل شود.
این موضوع برای اکوسیستم کریپتو و وب۳ اهمیت دوچندانی دارد، چرا که اپلیکیشنهای غیرمتمرکز، کیف پولهای تحت وب و صرافیهای معاملاتی عمدتاً با ریکت ساخته میشوند. یک حمله RCE موفق روی سرور فرانتاند میتواند به سرقت کلیدها، سشنهای کاربری و حتی دسترسی مستقیم به زیرساخت بکاند منجر شود. به همین دلیل تیمها باید ورودیهای کاربر را به شدت اعتبارسنجی کنند، از پیکربندیهای امن پیشفرض استفاده نمایند و وابستگیهای پروژه را به طور مداوم بهروزرسانی و پایش کنند.
پیشبینی میشود تیم توسعه ریکت در نسخههای آتی لایههای اعتبارسنجی قویتری برای پروتکل Flight ارائه دهد و جامعه امنیت نیز ابزارهای اسکن تخصصی مختص کامپوننتهای سمت سرور منتشر کند. همچنین باید منتظر انتشار الگوهای امنیتی جدیدی باشیم که توسعهدهندگان را در مسیر درست نگه دارد. در نهایت، امنیت هرگز نباید یک فکر ثانویه باشد، مخصوصاً وقتی کد شما داراییهای مالی کاربران را مدیریت میکند.