TL; ডিআর
রিঅ্যাক্ট২শেল (CVE-2025-55182) একটি সমালোচনামূলক তৈরি করে আরসিই ঝুঁকি দিয়ে রিঅ্যাক্ট সার্ভার কম্পোনেন্টস (RSC) এবং যে কাঠামোসমূহ সেগুলোকে অন্তর্ভুক্ত করে, যার মধ্যে রয়েছে পরবর্তী.jsকারণ দুর্বলতাটি ভিতরেই বাস করে RSC সিরিয়ালাইজেশন এবং ডিসিরিয়ালাইজেশন লেয়ারে, আক্রমণকারীরা একটি বিশেষভাবে তৈরি করা HTTP অনুরোধ পাঠিয়ে ট্রিগার করতে পারে। অননুমোদিত রিমোট কোড এক্সিকিউশনএমনকি যখন টিমগুলো ডিফল্ট ফ্রেমওয়ার্ক কনফিগারেশন চালায়। পরবর্তী.js আবেদনপত্রগুলো সর্বোচ্চ প্রচারের সম্মুখীন হয় কারণ সেগুলো গ্রহণ ও প্রক্রিয়াকরণ করা হয়। রিঅ্যাক্ট ফ্লাইট ডিফল্টরূপে HTTP-এর মাধ্যমে পেলোড পাঠানো হয়।
এই ত্রুটিটি একাধিক সংস্করণকে প্রভাবিত করে রিঅ্যাক্ট সার্ভার প্যাকেজএবং এটি কাজে লাগানোর জন্য আক্রমণকারীদের কোনো বিশেষ অ্যাপ্লিকেশন লজিকের প্রয়োজন হয় না। নিরাপত্তা গবেষকরা এর প্রায় ১০০% নির্ভরযোগ্যতা দেখিয়েছেন, এবং প্রাথমিক স্ক্যান থেকে জানা গেছে যে অনেক ক্লাউড এনভায়রনমেন্ট ঝুঁকিপূর্ণভাবে চলে। পরবর্তী.js উদাহরণস্বরূপ। দলগুলোকে অবিলম্বে প্যাচ করতে হবে। এবং তাদের সম্পূর্ণ বাস্তুতন্ত্রকে সঙ্কুচিত করার জন্য যাচাই করুন React2Shell (CVE-2025-55182) RCE ঝুঁকি.
২৯শে নভেম্বর মেটার বাগ বাউন্টি প্রোগ্রামের মাধ্যমে রিপোর্ট করা একটি গুরুতর দুর্বলতা জাভাস্ক্রিপ্ট ইকোসিস্টেম জুড়ে জরুরি পদক্ষেপের সূত্রপাত করেছে।
মনোনীত জন্য CVE-2025-55182৩রা ডিসেম্বর প্রকাশিত, যা এখন হিসাবে উল্লেখ করা হয় React2Shell এটি একটি সর্বোচ্চ-গুরুত্বপূর্ণ দুর্বলতা যা প্রভাবিত করে রিঅ্যাক্ট সার্ভার কম্পোনেন্টস সেইসাথে ফ্রেমওয়ার্কগুলোও, যেগুলো এগুলোকে অন্তর্ভুক্ত করে। প্রাথমিকভাবে, একটি পৃথক Next.js দুর্বলতা শনাক্তকারী (CVE-2025-66478) বরাদ্দ করা হয়েছিল, কিন্তু NVD পরে এটিকে একটি ডুপ্লিকেট এন্ট্রি হিসেবে মূল React CVE-এর সাথে একীভূত করে নেয়।
মূল সমস্যাটি একই, আর তা হলো সিরিয়ালাইজড RSC পেলোডের অনিরাপদ হ্যান্ডলিং, যা একটি HTTP রিকোয়েস্টের মাধ্যমে ট্রিগার হতে পারে। এর ফলে একজন বিদ্বেষী ব্যক্তি একটি কারসাজিপূর্ণ HTTP রিকোয়েস্ট পাঠাতে পারে, যার ফলস্বরূপ সার্ভারে যথেচ্ছ জাভাস্ক্রিপ্ট চলতে শুরু করে। React দ্বারা ডিসিরিয়ালাইজড.
CVE-2025-55182 সংক্ষিপ্ত বিবরণ
রিঅ্যাক্ট সার্ভার কম্পোনেন্টগুলো আধুনিক ফ্রেমওয়ার্কগুলোর সাথে গভীরভাবে সমন্বিত, এবং অনেক ক্ষেত্রে এগুলো ডিফল্টভাবে সক্রিয় থাকে। এই কারণে, অ্যাপ্লিকেশনগুলো ঝুঁকির সম্মুখীন হতে পারে। রিঅ্যাক্ট২শেল (CVE-2025-55182) এমনকি যদি তারা কখনও স্পষ্টভাবে কোনো সার্ভার ফাংশন এন্ডপয়েন্ট সংজ্ঞায়িত না করেও, RSC ইমপ্লিমেন্টেশনটি তখনও উপস্থিত থাকে, এবং শুধুমাত্র সেটিই ঝুঁকিপূর্ণ কোড পাথ সক্রিয় করতে এবং একটি উল্লেখযোগ্য ক্ষতি তৈরি করার জন্য যথেষ্ট। আরসিই ঝুঁকি.
ত্রুটিটি যেভাবে উদ্ভূত হয়েছে রিঅ্যাক্ট ফ্লাইট প্রোটোকোএটি নির্দিষ্ট কিছু স্ট্রাকচার্ড পেলোড প্রসেস করে। পুরোনো সংস্করণগুলো পেলোডে সরবরাহ করা অবজেক্ট পাথগুলো যাচাই না করেই সেগুলোর গঠন বৈধ বা প্রত্যাশিত কিনা তা পরীক্ষা করার চেষ্টা করত। একজন আক্রমণকারী এই প্রক্রিয়াটিকে কাজে লাগিয়ে অবশেষে সার্ভারে কোড এক্সিকিউশন পর্যন্ত পৌঁছাতে পারত। এর জন্য কোনো অথেনটিকেশন, বিশেষ কনফিগারেশন বা অ্যাপ-নির্দিষ্ট লজিকের প্রয়োজন হয় না। যেহেতু সমস্যাটি ডিফল্ট কনফিগারেশনেই বিদ্যমান, standard কোনো অস্বাভাবিক পরিস্থিতি ছাড়াই মোতায়েনগুলো উন্মোচিত হয়।
যখন আক্রমণকারীরা ক্ষতিকারক HTTP POST অনুরোধ পাঠায় যা "এর অপব্যবহার করে" তখন শোষণ ঘটে।vm.runInThisContextসার্ভার অ্যাকশনের মাধ্যমে "দুর্বল এন্ডপয়েন্ট" মেকানিজম। যদিও React সরাসরি দুর্বল এন্ডপয়েন্টটি প্রকাশ করে না, Next.js তা করে, যা একটি প্রকৃত রিমোট অ্যাটাক ভেক্টর তৈরি করে।
Next.js যেকোনো রিকোয়েস্ট থেকে ফ্লাইট পেলোড গ্রহণ করে, যথাযথ যাচাইকরণ ছাড়াই সেগুলোকে প্রসেস করে এবং React-এর ডিসিরিয়ালাইজারে পাঠিয়ে দেয়। সিস্টেমটি এই বাহ্যিক ইনপুটগুলোকে বিশ্বস্ত হিসেবে গণ্য করে, যা আক্রমণকারীদেরকে সফল হতে সক্ষম করে। দূরবর্তী কোড নির্বাহ সর্বজনীনভাবে প্রবেশযোগ্য এন্ডপয়েন্টগুলির মাধ্যমে সম্পূর্ণ Node.js প্রসেস প্রিভিলেজ সহ টার্গেট সার্ভারে।
এর তীব্রতা উল্লেখযোগ্যভাবে বৃদ্ধি পায় কারণ ডিফল্ট কনফিগারেশনগুলো ঝুঁকিপূর্ণ থেকে যায়। রিঅ্যাক্ট২শেল (CVE-2025-55182) এবং ফলাফল আরসিই ঝুঁকি. একটি standard আপনার তৈরি করা Next.js অ্যাপ্লিকেশন create-next-app কোনো কাস্টম কোড বা কনফিগারেশন পরিবর্তনের প্রয়োজন ছাড়াই এটি নিজেকে প্রকাশ করে। নিরাপত্তা গবেষকরা এর প্রায় ১০০% এক্সপ্লয়টেশন নির্ভরযোগ্যতা নিশ্চিত করেছেন এবং জানিয়েছেন যে ৩৯% ক্লাউড এনভায়রনমেন্টে ঝুঁকিপূর্ণ ইনস্ট্যান্স চলে, যেখানে সমস্ত এনভায়রনমেন্টের ৪৪%-এ সর্বজনীনভাবে উন্মুক্ত Next.js অ্যাপ্লিকেশন চলে যা এর দ্বারা প্রভাবিত। React2Shell.
React2Shell-এর সাথে পরিচিতি বোঝা
ঝুঁকিপূর্ণ সংস্করণগুলো একাধিক রিলিজ জুড়ে বিস্তৃত:
| উপাদান | প্রভাবিত সংস্করণ |
|---|---|
| রিঅ্যাক্ট-সার্ভার-ডম-ওয়েবপ্যাক | ১, ১২, ১৩, ৪২ |
| রিঅ্যাক্ট-সার্ভার-ডম-পার্সেল | ১, ১২, ১৩, ৪২ |
| রিঅ্যাক্ট-সার্ভার-ডম-টার্বোপ্যাক | ১, ১২, ১৩, ৪২ |
যেহেতু অনেক ফ্রেমওয়ার্ক তাদের কোরেই RSC সাপোর্ট অন্তর্ভুক্ত করে, তাই অ্যাপ্লিকেশনগুলো প্রায়শই অজান্তেই ঝুঁকিপূর্ণ কোডটি পেয়ে যায়। যে কোনো ফ্রেমওয়ার্ক বা বান্ডলার যা এই প্যাকেজগুলো সরবরাহ করে, তা অ্যাপ্লিকেশনটিকে React2Shell (CVE-2025-55182) এবং এর RCE ঝুঁকির সম্মুখীন করতে পারে। এর মধ্যে অন্তর্ভুক্ত রয়েছে:
- নেক্সট.জেএস (অ্যাপ রাউটার)
- রিঅ্যাক্ট রাউটার RSC প্রিভিউ
- Vite RSC প্লাগইন
- পার্সেল আরএসসি প্লাগইন
- রেডউড এসডিকে
- ওয়াকু
- এক্সপো
Next.js বিশেষভাবে প্রভাবিত হয় কারণ এটি ডিফল্টরূপে HTTP-এর পরিবর্তে RSC-সম্পর্কিত এন্ডপয়েন্ট ব্যবহার করে। যে সংস্করণগুলি থেকে শুরু হয় ১৪.৩.০ ক্যানারি বিল্ডঅধিকাংশের সাথে 15.x এবং তাড়াতাড়ি 16.x রিলিজগুলোতে দুর্বল ইমপ্লিমেন্টেশনটি রয়েছে। যারা ক্যানারি চালাচ্ছেন। ১৪.৩.০-ক্যানারি.৭৭ অথবা পরে উচিত ফিরে যান স্থিতিশীল 14.x প্যাচ করা ক্যানারি সংস্করণ প্রকাশিত না হওয়া পর্যন্ত শাখাটি চালু রাখুন।
প্যাচ করা Next.js সংস্করণ অন্তর্ভুক্ত করা:
| উপাদান | প্যাচ করা সংস্করণ |
|---|---|
| পরবর্তী.js | 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7 |
পাবলিক PoC এবং নির্ভরযোগ্য সনাক্তকরণ
দুর্বলতাটি প্রকাশিত হওয়ার পর, অসংখ্য তথাকথিত প্রুফ-অফ-কনসেপ্ট প্রচারিত হতে শুরু করে। সেগুলোর মধ্যে অনেকগুলোই হয় অসঠিক ছিল অথবা ত্রুটিপূর্ণ অনুমানের উপর ভিত্তি করে তৈরি হয়েছিল। দুর্বলতাটির মূল লেখক, ল্যাকলান ডেভিডসন, প্রকাশ্যে বিষয়টি নিশ্চিত করেছেন। react2shell প্রচারিত গিটহাব PoC-গুলো React/Next.js রক্ষণাবেক্ষণকারীদের সাথে ব্যক্তিগতভাবে শেয়ার করা এক্সপ্লয়েটটির সাথে মেলে না এবং তার সরবরাহ করা নিজস্ব PoC.
প্রাথমিক জনসমক্ষে করা প্রচেষ্টাগুলোর একটি বড় সমস্যা হলো, তারা এটা বুঝতে ব্যর্থ হয় যে শোষণ সফল হয় এর বিরুদ্ধে। standard নির্দিষ্ট অ্যাপ্লিকেশন লজিক বা সার্ভার-সাইড ফাংশনের উপস্থিতি ছাড়াই Next.js ডেপ্লয়মেন্ট করা যায়।
একাধিক সংস্থার নিরাপত্তা গবেষকরা জোর দিয়েছেন যে, এই দুর্বলতা শনাক্ত করার জন্য শুধু RSC উপস্থিত আছে কিনা তা চিহ্নিত করার চেয়েও বেশি কিছু প্রয়োজন। অ্যাসেটনোটের দল একটি প্রকাশ করেছে। নির্ভরযোগ্য সনাক্তকরণ পদ্ধতি এবং একটি স্ক্যানার কোনো এক্সপ্লয়েট লজিক ব্যবহার না করেই সমস্যাটি নিশ্চিত করতে সক্ষম। মেটাসপ্লয়েটে শীঘ্রই একটি থাকবে উপলব্ধ এক্সপ্লয়েট এই দুর্বলতার ক্ষেত্রেও।
সনাক্তকরণ পদ্ধতিটি কাজে লাগায় যেভাবে React Server, অবজেক্ট প্রপার্টি রেফারেন্সগুলোকে কোলন ডিলিমিটার ব্যবহার করে পরিচালনা করে। ReactFlightClientConfigBundlerWebpack.js/requireModule() ফাংশন। যখন ঝুঁকিপূর্ণ সংস্করণগুলি একটি বিশেষভাবে গঠিত মাল্টিপার্ট পেলোড প্রসেস করে যা অস্তিত্বহীন নেস্টেড অবজেক্ট পাথ অতিক্রম করার চেষ্টা করে, তখন সেগুলি অনুমানযোগ্য ত্রুটিপূর্ণ প্রতিক্রিয়া সৃষ্টি করে। একটি ডায়াগনস্টিক অনুরোধ একটি রেফারেন্স প্যাটার্ন পাঠায় যেমন `$1:a:a` একটি খালি অবজেক্টের সাথে যুক্ত। দুর্বল ইমপ্লিমেন্টেশনগুলো এটিকে একটি অনির্ধারিত মানের উপর নেস্টেড প্রপার্টি অ্যাক্সেস হিসেবে সমাধান করার চেষ্টা করে, যার ফলে একটি এক্সেপশন তৈরি হয়। সার্ভার রেসপন্স বডিতে একটি স্বতন্ত্র এরর ডাইজেস্ট প্যাটার্নসহ 500 স্ট্যাটাস ফেরত দেয়।
export function requireModule<T>(metadata: ClientReference<T>): T { let moduleExports = __webpack_require__(metadata[ID]); if (isAsyncImport(metadata)) { if (typeof moduleExports.then !== 'function') { // This wasn't a promise after all. } else if (moduleExports.status === 'fulfilled') { // This Promise should've been instrumented by preloadModule. moduleExports = moduleExports.value; } else { throw moduleExports.reason; } } if (metadata[NAME] === '*') { // This is a placeholder value that represents that the caller imported this // as a CommonJS module as is. return moduleExports; } if (metadata[NAME] === '') { // This is a placeholder value that represents that the caller accessed the // default property of this if it was an ESM interop module. return moduleExports.__esModule ? moduleExports.default : moduleExports; } return moduleExports[metadata[NAME]]; } React2Shell (CVE-2025-55182) এবং RCE ঝুঁকির সম্মুখীন সংস্থাগুলির জন্য তাৎক্ষণিক পদক্ষেপ
আপনার কোডবেস এবং ডেপ্লয় করা অ্যাপ্লিকেশনগুলো পুঙ্খানুপুঙ্খভাবে স্ক্যান করুন। ঝুঁকিপূর্ণ প্যাকেজ সংস্করণগুলি সনাক্ত করতে। সরাসরি React সার্ভার প্যাকেজ নির্ভরতা, ফ্রেমওয়ার্ক-স্তরের RSC বাস্তবায়ন (Next.js, Waku, Redwood, ইত্যাদি), `create-next-app` বা অনুরূপ স্ক্যাফোল্ডিং টুল দিয়ে তৈরি অ্যাপ্লিকেশন এবং কন্টেইনারাইজড অ্যাপ্লিকেশন যেগুলিতে পুরানো বেস ইমেজ থাকতে পারে, সেগুলির প্রতি বিশেষ মনোযোগ দিন।
সফটওয়্যার গঠন বিশ্লেষণ (SCA) এর মত টুল জাইজেনির SCA আপনার সফ্টওয়্যার ইনভেন্টরি জুড়ে প্রভাবিত নির্ভরতাগুলি স্বয়ংক্রিয়ভাবে সনাক্ত করতে পারে।
অবিলম্বে প্যাচ করুন:
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) এবং RSC অন্তর্ভুক্ত যেকোনো ফ্রেমওয়ার্ক প্যাকেজের মতো প্যাচ করা সংস্করণগুলিতে আপডেট করুন। এই আপডেটগুলি RSC পেলোড হ্যান্ডলিংয়ের জন্য কঠোর ভ্যালিডেশন চালু করে এবং অনিরাপদ প্রপার্টি ডিরেফারেন্সিং প্রতিরোধ করে, যা এক্সপ্লয়টেশনের সুযোগ করে দেয়।
স্বয়ংক্রিয় প্রতিকার সরঞ্জাম, যেমন জাইজেনির স্বয়ংক্রিয় প্রতিকার বৈশিষ্ট্যবৃহৎ কোডবেস জুড়ে প্রক্রিয়াটিকে ত্বরান্বিত করতে পারে।
অস্থায়ী WAF সুরক্ষা ব্যবস্থা বাস্তবায়ন করুন:
আপনার ডেপ্লয়মেন্ট জুড়ে প্যাচগুলি ছড়িয়ে পড়ার সময় pipelineতাৎক্ষণিক সুরক্ষার জন্য ওয়েব অ্যাপ্লিকেশন ফায়ারওয়াল নিয়মগুলো সক্রিয় করুন। প্রধান ক্লাউড সরবরাহকারীরা জরুরি নিয়মাবলী প্রকাশ করেছে। CloudflareReact ট্র্যাফিক প্রক্সি করা হলেও সকল স্তরের জন্য স্বয়ংক্রিয় সুরক্ষা AWS, Akamai, Fastly, Google Cloud অনুরূপ প্রতিরক্ষামূলক নিয়ম উপলব্ধ আছে। রূপান্তরকালীন সময়ে একটি সুরক্ষামূলক স্তর তৈরি করতে এই নিয়ন্ত্রণগুলি অবিলম্বে সক্রিয় করুন।
সন্দেহজনক HTTP ট্র্যাফিকের উপর নজর রাখুন:
শোষণের চেষ্টার সূচকগুলির জন্য লগিং এবং অ্যালার্টিং কনফিগার করুন: ত্রুটিপূর্ণ বা অপ্রত্যাশিত RSC ফ্লাইট প্রোটোকল পেলোড, RSC এন্ডপয়েন্টগুলিতে 500 ত্রুটির অস্বাভাবিক প্যাটার্ন, সন্দেহজনক `Next-Action` বা `Next-Router-State-Tree` হেডার সহ POST অনুরোধ, মাল্টিপার্ট পেলোড সহ `/_next/` পাথে বারবার অনুরোধ।
আপনার সফটওয়্যার বিল অফ মেটেরিয়ালস যাচাই করুন:
অনেক ফ্রেমওয়ার্ক RSC নির্ভরতাগুলিকে স্বচ্ছভাবে বান্ডল করে, যার ফলে সাধারণ নির্ভরতা পর্যালোচনায় সেগুলি অদৃশ্য থাকে। আপনার সম্পূর্ণ পরীক্ষা করুন SBOM এটি নিশ্চিত করতে হবে যে: ঝুঁকিপূর্ণ React সার্ভার প্যাকেজগুলির উপর কোনো ট্রানজিটিভ ডিপেন্ডেন্সি অবশিষ্ট নেই এবং ফ্রেমওয়ার্ক আপডেটের ফলে অনিচ্ছাকৃতভাবে পুরোনো RSC ইমপ্লিমেন্টেশনগুলি চালু হয়ে যায়নি।
শেষ কথা
সাম্প্রতিক বছরগুলিতে React2Shell জাভাস্ক্রিপ্ট ইকোসিস্টেমের সবচেয়ে গুরুতর দুর্বলতাগুলির মধ্যে একটি। এর কারণ এক্সপ্লয়েটটি জটিল তা নয়, বরং RSC আজকের টুলিংয়ের মধ্যে অত্যন্ত গভীরভাবে ছড়িয়ে আছে। এখন যেহেতু পুরো ইকোসিস্টেম জুড়ে প্যাচ পাওয়া যাচ্ছে, টিমগুলোকে যত দ্রুত সম্ভব প্রোডাকশনে আপগ্রেডগুলো প্রয়োগ করতে হবে।
আপনার অ্যাপ্লিকেশনটি যদি প্রত্যক্ষ বা পরোক্ষভাবে React-এর সার্ভার ফিচার ব্যবহার করে থাকে, তবে এই দুর্বলতাটি সমাধান করাকে আপনাকে সর্বোচ্চ অগ্রাধিকার দিতে হবে।






