TL; DR
React2Shell (CVE-2025-55182) ဝေဖန်မှုတစ်ခုကို ဖန်တီးပေးသည် RCE အန္တရာယ် ဖြတ်. React Server အစိတ်အပိုင်းများ (RSC) နှင့် ၎င်းတို့ကို ထည့်သွင်းထားသော မူဘောင်များ၊ အပါအဝင် Next.js။ အဘယ်ကြောင့်ဆိုသော် အားနည်းချက်သည် အတွင်း၌ ရှိနေသောကြောင့်ဖြစ်သည် RSC serialization နှင့် deserialization layer တွင် တိုက်ခိုက်သူများသည် created HTTP request နှင့် trigger တစ်ခု ပေးပို့နိုင်သည်။ အထောက်အထားမပြနိုင်သော အဝေးထိန်းကုဒ်လုပ်ဆောင်ခြင်းအဖွဲ့များသည် မူရင်း framework configuration များကို လုပ်ဆောင်သည့်တိုင်။ Next.js အပလီကေးရှင်းများသည် လက်ခံပြီး လုပ်ဆောင်သောကြောင့် အမြင့်ဆုံးထိတွေ့မှုနှင့် ရင်ဆိုင်ရပါသည် တုံ့ပြန်ပျံသန်းမှု ပုံမှန်အားဖြင့် HTTP မှတစ်ဆင့် payloads များ။
ချို့ယွင်းချက်က ဗားရှင်းများစွာကို ထိခိုက်စေပါတယ် React server package များ, နှင့် တိုက်ခိုက်သူများသည် ၎င်းကို အသုံးချရန် custom application logic မလိုအပ်ပါ။ လုံခြုံရေးသုတေသီများသည် ၁၀၀% နီးပါး ယုံကြည်စိတ်ချရမှုကို ပြသပြီး အစောပိုင်း scan များအရ cloud ပတ်ဝန်းကျင်များစွာတွင် အားနည်းချက်များ ရှိနေကြောင်း ဖော်ပြသည်။ Next.js ဖစ်စဉ်များ။ အသင်းတွေက ချက်ချင်းပြင်ဆင်ရမယ် ပြီးတော့ သူတို့ရဲ့ ဂေဟစနစ်အပြည့်အစုံကို အတည်ပြုပြီး ကျုံ့သွားအောင် React2Shell (CVE-2025-55182) RCE အန္တရာယ်.
နိုဝင်ဘာလ ၂၉ ရက်နေ့တွင် Meta ၏ bug bounty program မှတစ်ဆင့် သတင်းပို့ခဲ့သော အရေးကြီးသော အားနည်းချက်တစ်ခုသည် JavaScript ecosystem တစ်လျှောက်တွင် အရေးတကြီးတုံ့ပြန်မှုများကို ဖြစ်ပေါ်စေခဲ့သည်။
ဒီဇင်ဘာ CVE-2025-55182ဒီဇင်ဘာလ ၃ ရက်နေ့တွင် ထုတ်ဖော်ပြသခဲ့ပြီး ယခုအခါ ရည်ညွှန်းထားသည် React2Shell သက်ရောက်မှုရှိသော အမြင့်ဆုံးပြင်းထန်မှုရှိသော အားနည်းချက်တစ်ခုဖြစ်သည် ဆာဗာ အစိတ်အပိုင်းများကို တုံ့ပြန်ပါ။ ၎င်းတို့ကို ပေါင်းစပ်ထားသော framework များနှင့်အတူ။ အစပိုင်းတွင် သီးခြား Next.js vulnerability identifier (CVE-2025-66478) ကို သတ်မှတ်ပေးခဲ့သော်လည်း နောက်ပိုင်းတွင် NVD သည် ၎င်းကို မူရင်း React CVE ထဲသို့ ထပ်တူ entry အဖြစ် ပေါင်းစည်းခဲ့သည်။
အခြေခံပြဿနာကတော့ HTTP request မှတစ်ဆင့် trigger လုပ်နိုင်တဲ့ serialized RSC payloads တွေကို မလုံခြုံစွာကိုင်တွယ်ခြင်းပါပဲ။ ဒါက အန္တရာယ်ရှိတဲ့ activator တစ်ယောက်က လှည့်စားထားတဲ့ HTTP request တစ်ခုပို့ဖို့ လမ်းဖွင့်ပေးလိုက်ပြီး server ပေါ်မှာ arbitrary JavaScript run စေပါတယ်။ React မှ deserialized လုပ်ထားသည်.
CVE-2025-55182 အနှစ်ချုပ်
React Server Components များကို ခေတ်မီ framework များနှင့် နက်ရှိုင်းစွာ ပေါင်းစပ်ထားပြီး အများစုတွင် default အနေဖြင့် enable လုပ်ထားသည်။ ထို့ကြောင့် application များသည် အောက်ပါတို့ကို ကြုံတွေ့ရနိုင်သည်။ React2Shell (CVE-2025-55182) ၎င်းတို့သည် Server Function endpoint ကို ရှင်းလင်းစွာ မသတ်မှတ်သည့်တိုင်။ RSC အကောင်အထည်ဖော်မှုသည် ရှိနေဆဲဖြစ်ပြီး ၎င်းတစ်ခုတည်းဖြင့် အားနည်းချက်ရှိသော code path များကို အသက်သွင်းပြီး သိသာထင်ရှားသော လုပ်ဆောင်ချက်တစ်ခု ဖန်တီးရန် လုံလောက်ပါသည်။ RCE အန္တရာယ်.
ချို့ယွင်းချက်ဟာ နည်းလမ်းကြောင့် ဖြစ်ပေါ်လာတာပါ React Flight ပရိုတိုကောl သည် အချို့သော ဖွဲ့စည်းတည်ဆောက်ပုံရှိသော payload များကို လုပ်ဆောင်သည်။ ယခင်ဗားရှင်းများသည် ဖွဲ့စည်းပုံသည် တရားဝင်သည် သို့မဟုတ် မျှော်လင့်ထားသည်ကို အတည်မပြုဘဲ payload တွင် ထောက်ပံ့ပေးထားသော object path များကို လျှောက်လှမ်းရန် ကြိုးစားခဲ့သည်။ တိုက်ခိုက်သူတစ်ဦးသည် ဤလုပ်ငန်းစဉ်ကို ခြယ်လှယ်နိုင်ပြီး နောက်ဆုံးတွင် server ပေါ်တွင် code execution သို့ ရောက်ရှိနိုင်သည်။ authentication မလိုအပ်ပါ၊ အထူး configuration မလိုအပ်ပါ၊ နှင့် app-specific logic မလိုအပ်ပါ။ ပြဿနာသည် out-of-the-box configuration များတွင် ရှိနေသောကြောင့်၊ standard ဖြန့်ကျက်မှုများကို ပုံမှန်မဟုတ်သော အခြေအနေများ မလိုအပ်ဘဲ ဖော်ထုတ်နိုင်သည်။
တိုက်ခိုက်သူများသည် “the” ကို အလွဲသုံးစားပြုသည့် အန္တရာယ်ရှိသော HTTP POST request များ ပေးပို့သည့်အခါ Exploit ဖြစ်ပေါ်လာသည်။vm.runInThisContext” ယန္တရား။ React သည် အားနည်းချက်ရှိသော endpoint ကို တိုက်ရိုက်ဖော်ထုတ်ခြင်းမရှိသော်လည်း Next.js သည် ဖော်ထုတ်ပြီး စစ်မှန်သော remote attack vector တစ်ခုကို ဖန်တီးပေးသည်။
Next.js သည် မည်သည့် request မှမဆို Flight payloads များကို လက်ခံပြီး သင့်လျော်သော validation မပါဘဲ လုပ်ဆောင်ကာ React ၏ deserializer သို့ ပေးပို့သည်။ စနစ်သည် ဤ external inputs များကို ယုံကြည်စိတ်ချရသော အနေအထားဖြင့် သဘောထားပြီး attacker များအား လုပ်ဆောင်နိုင်စေပါသည်။ အဝေးကုဒ်ကို အကောင်အထည်ဖော်ခြင်း။ အများပြည်သူ ဝင်ရောက်ကြည့်ရှုနိုင်သော အဆုံးမှတ်များမှတစ်ဆင့် Node.js လုပ်ငန်းစဉ်ဆိုင်ရာ အခွင့်အရေးအပြည့်အဝဖြင့် ပစ်မှတ် server ပေါ်မှာ။
မူရင်းဖွဲ့စည်းပုံများသည် အားနည်းချက်များအဖြစ် ဆက်လက်တည်ရှိနေသောကြောင့် ပြင်းထန်မှုမှာ သိသိသာသာ မြင့်တက်လာပါသည်။ React2Shell (CVE-2025-55182) နှင့်ရလဒ် RCE အန္တရာယ်။ တစ်ဦးက standard သင်ဖန်တီးထားတဲ့ Next.js အပလီကေးရှင်း create-next-app စိတ်ကြိုက်ကုဒ် သို့မဟုတ် ဖွဲ့စည်းပုံပြောင်းလဲမှုများ မလိုအပ်ဘဲ ၎င်းကိုယ်တိုင် ထုတ်ဖော်ပြသပါသည်။ လုံခြုံရေးသုတေသီများသည် အသုံးချမှုယုံကြည်စိတ်ချရမှု ၁၀၀% နီးပါးရှိကြောင်း အတည်ပြုပြီး cloud ပတ်ဝန်းကျင် ၃၉% သည် အားနည်းချက်ရှိသော instance များကို အသုံးပြုပြီး ပတ်ဝန်းကျင်အားလုံး၏ ၄၄% သည် အများပြည်သူသုံး Next.js အပလီကေးရှင်းများကို အသုံးပြုကြောင်း အစီရင်ခံတင်ပြပါသည်။ React2Shell.
React2Shell ကို ထိတွေ့မှုအကြောင်း နားလည်ခြင်း
အားနည်းချက်ရှိသော ဗားရှင်းများသည် ထုတ်ဝေမှုများစွာတွင် ပါဝင်သည်-
| component | သက်ရောက်မှုရှိသောဗားရှင်းများ |
|---|---|
| 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 |
framework အများစုဟာ core မှာ RSC support ကိုထည့်သွင်းထားတာကြောင့် application တွေဟာ vulnerable code ကို မသိလိုက်ဘဲ inherit လုပ်လေ့ရှိပါတယ်။ ဒီ package တွေကို ship လုပ်တဲ့ framework ဒါမှမဟုတ် bundler တစ်ခုခုဟာ application ကို React2Shell (CVE-2025-55182) နဲ့ RCE risk တွေနဲ့ ထိတွေ့စေနိုင်ပါတယ်။ အဲဒီထဲမှာ အောက်ပါတို့ပါဝင်ပါတယ်-
- Next.js (အက်ပ်ရောက်တာ)
- React Router RSC ကြိုတင်ကြည့်ရှုခြင်း
- Vite RSC ပလပ်အင်
- Parcel RSC ပလပ်အင်
- ရက်ဒ်ဝုဒ် SDK
- ဝါကူ
- ကုန်စည်ပြပွဲ
Next.js သည် မူရင်းအားဖြင့် HTTP မှတစ်ဆင့် RSC နှင့်ဆက်စပ်သော endpoint များကို အသုံးပြုသောကြောင့် အထူးထိခိုက်ပါသည်။ ဖြင့်စတင်သော ဗားရှင်းများ ၁၄.၃.၀ ကနေရီတည်ဆောက်မှုများအများစုနှင့်အတူ 15.x စောစော 16.x ဖြန့်ချိမှုများတွင် အားနည်းချက်ရှိသော အကောင်အထည်ဖော်မှုကို ပါဝင်သည်။ canary ကို အသုံးပြုသူတိုင်း ၁၄.၃.၀-ကနေရီ.၇၇ သို့မဟုတ် နောက်ပိုင်းတွင် ရှိသင့်သည် သို့ပြန်သွားပါ တည်ငြိမ်သော 14.x ပြင်ဆင်ထားသော canary ဗားရှင်းထုတ်ဝေသည်အထိ branch လုပ်ပါ။
ပြင်ဆင်ထားသော Next.js ဗားရှင်းများ ပါဝင်:
| component | ပြင်ဆင်ထားသော ဗားရှင်းများ |
|---|---|
| Next.js | 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7 |
အများပြည်သူသုံး PoC များနှင့် ယုံကြည်စိတ်ချရသော ထောက်လှမ်းခြင်း
အားနည်းချက်ထုတ်ဖော်ပြီးနောက်၊ အယူအဆသက်သေပြချက်ဟု ယူဆရသော အများအပြား ပျံ့နှံ့လာခဲ့သည်။ ၎င်းတို့အများစုမှာ မမှန်ကန်ခြင်း သို့မဟုတ် ချို့ယွင်းချက်ရှိသော ယူဆချက်များအပေါ် အခြေခံထားသည်။ မူလအားနည်းချက်ရေးသားသူ Lachlan Davidson သည် လူသိရှင်ကြား အတည်ပြုခဲ့သည် react2shell GitHub PoC များ လည်ပတ်နေခြင်းသည် React/Next.js ပြုပြင်ထိန်းသိမ်းသူများနှင့် သီးသန့်မျှဝေထားသော exploit နှင့် မကိုက်ညီကြောင်းနှင့် ၎င်း၏ ပေးအပ်ချက် ကိုယ်ပိုင် PoC.
အစောပိုင်း အများပြည်သူရှေ့မှောက် ကြိုးပမ်းမှုများနှင့်ပတ်သက်သည့် အဓိကပြဿနာတစ်ခုမှာ အမြတ်ထုတ်မှု အောင်မြင်ကြောင်း ၎င်းတို့ မသိရှိခြင်း ဖြစ်သည်။ standard သီးခြား application logic သို့မဟုတ် server-side function များ ရှိရန်မလိုအပ်ဘဲ Next.js ဖြန့်ကျက်မှုများ။
အဖွဲ့အစည်းများစွာမှ လုံခြုံရေးသုတေသီများက RSC ရှိမရှိကို ခွဲခြားသတ်မှတ်ရုံထက် ပိုမိုလိုအပ်ကြောင်း အလေးပေးပြောကြားခဲ့သည်။ Assetnote ၏အဖွဲ့သည် အားနည်းချက်ကို ရှာဖွေတွေ့ရှိရန် လိုအပ်ကြောင်း ඉදිරියට ပြောကြားခဲ့သည်။ ယုံကြည်စိတ်ချရသော ထောက်လှမ်းနည်းလမ်း နှင့်တစ်ဦး စကင်နာ exploit logic မသုံးဘဲ ပြဿနာကို အတည်ပြုနိုင်ပါတယ်။ Metasploit မှာ မကြာခင်မှာ ရရှိနိုင်သော အားနည်းချက် ဤအားနည်းချက်အတွက်လည်း။
ထောက်လှမ်းခြင်းနည်းလမ်းသည် React Server သည် object property reference များကို colon delimiters များအသုံးပြု၍ မည်သို့ကိုင်တွယ်သည်ကို အသုံးချသည်။ ReactFlightClientConfigBundlerWebpack.js/requireModule() လုပ်ဆောင်ချက်။ အားနည်းချက်ရှိသော ဗားရှင်းများသည် မရှိသော nested object paths များကို ဖြတ်ကျော်ရန် ကြိုးစားသည့် အထူးဖွဲ့စည်းထားသော multipart payload ကို လုပ်ဆောင်သောအခါ၊ ၎င်းတို့သည် ကြိုတင်ခန့်မှန်းနိုင်သော error responses များကို လှုံ့ဆော်ပေးသည်။ ရောဂါရှာဖွေခြင်း တောင်းဆိုချက်သည် အောက်ပါကဲ့သို့သော reference pattern ကို ပေးပို့သည်။ `$၁:က:က` ဗလာအရာဝတ္ထုတစ်ခုနှင့် တွဲထားသည်။ အားနည်းချက်ရှိသော အကောင်အထည်ဖော်မှုများသည် ၎င်းကို မသတ်မှတ်ထားသော တန်ဖိုးတစ်ခုတွင် nested property access အဖြစ် ဖြေရှင်းရန် ကြိုးစားပြီး exception တစ်ခု ဖြစ်ပေါ်စေပါသည်။ server သည် response body တွင် ထူးခြားသော error digest pattern ပါသည့် 500 status ကို ပြန်ပေးသည်။
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 အန္တရာယ်ကို ရင်ဆိုင်နေရသော အဖွဲ့အစည်းများအတွက် ချက်ချင်းလုပ်ဆောင်ရမည့်အရာများ
သင့်ရဲ့ codebase နဲ့ deployed application တွေကို ပြည့်စုံတဲ့ scan ဖတ်မှု ပြုလုပ်ပါ။ အားနည်းချက်ရှိသော package ဗားရှင်းများကို ရှာဖွေရန်။ React server package dependencies များကို direct လုပ်ခြင်း၊ Framework-level RSC implementations (Next.js၊ Waku၊ Redwood၊ etc)၊ `create-next-app` သို့မဟုတ် အလားတူ scaffolding tools များဖြင့် တည်ဆောက်ထားသော application များနှင့် ခေတ်မမီတော့သော base image များပါဝင်နိုင်သည့် containerized application များကို အထူးဂရုပြုပါ။
ဆော့ဖ်ဝဲလ် ဖွဲ့စည်းမှု ခွဲခြမ်းစိတ်ဖြာခြင်း (SCA) ကဲ့သို့သောကိရိယာများ ဆိုက်ဂျီနီရဲ့ SCA သင့်ဆော့ဖ်ဝဲစာရင်းတစ်လျှောက်တွင် ထိခိုက်နေသော dependency များကို အလိုအလျောက် ရှာဖွေနိုင်သည်။
ချက်ချင်းပြင်ဆင်ပါ-
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 ပါဝင်သော framework package များကဲ့သို့သော patch လုပ်ထားသော version များသို့ update လုပ်ပါ။ ဤ update များသည် RSC payload handling အတွက် တင်းကျပ်သော validation ကို မိတ်ဆက်ပေးပြီး exploit လုပ်ခြင်းကို ဖြစ်စေသည့် unsafe property dereferencing ကို ကာကွယ်ပေးသည်။
အလိုအလျောက်ပြုပြင်ရေးကိရိယာများ၊ ဥပမာ Xygeni ရဲ့ အလိုအလျောက် ပြုပြင်မှု လုပ်ဆောင်ချက်၊ ကြီးမားသော ကုဒ်ဘေ့စ်များတစ်လျှောက် လုပ်ငန်းစဉ်ကို အရှိန်မြှင့်နိုင်သည်။
ယာယီ WAF ကာကွယ်မှုများကို အကောင်အထည်ဖော်ပါ-
patch များသည် သင်၏ deployment မှတစ်ဆင့် ပျံ့နှံ့သွားသောအခါတွင် pipelineချက်ချင်းကာကွယ်မှုအတွက် Web Application Firewall စည်းမျဉ်းများကို အသက်သွင်းပါ။ အဓိက cloud ဝန်ဆောင်မှုပေးသူများသည် အရေးပေါ်စည်းမျဉ်းများကို ထုတ်ပြန်လိုက်ပါပြီ။ CloudFlareReact traffic ကို proxy လုပ်တဲ့အခါ tier အားလုံးအတွက် အလိုအလျောက်ကာကွယ်မှုလည်း ပါဝင်ပါတယ်။ AWS၊ Akamai၊ Fastly၊ Google Cloud အလားတူကာကွယ်ရေးစည်းမျဉ်းများ ရရှိနိုင်ပါသည်။ အကူးအပြောင်းကာလအတွင်း အကာအကွယ်အလွှာတစ်ခုဖန်တီးရန် ဤထိန်းချုပ်မှုများကို ချက်ချင်းဖွင့်ပါ။
သံသယဖြစ်ဖွယ် HTTP အသွားအလာကို စောင့်ကြည့်ပါ-
အသုံးချမှုကြိုးပမ်းမှုများ၏ အညွှန်းကိန်းများအတွက် မှတ်တမ်းတင်ခြင်းနှင့် အသိပေးခြင်းကို ပြင်ဆင်ပါ- ပုံပျက်နေသော သို့မဟုတ် မမျှော်လင့်ထားသော RSC Flight protocol payloads များ၊ RSC endpoints များတွင် error ၅၀၀ ၏ ပုံမှန်မဟုတ်သော ပုံစံများ၊ သံသယဖြစ်ဖွယ် `Next-Action` သို့မဟုတ် `Next-Router-State-Tree` headers များပါသည့် POST request များ၊ multipart payloads များဖြင့် `/_next/` paths များသို့ ထပ်ခါတလဲလဲ request များ ပြုလုပ်ခြင်း။
သင့်ဆော့ဖ်ဝဲလ် ပစ္စည်းစာရင်းကို အတည်ပြုပါ-
framework အများအပြားသည် RSC dependencies များကို ပွင့်လင်းမြင်သာစွာ စုစည်းထားသောကြောင့် မျက်နှာပြင်အဆင့် dependency reviews များတွင် ၎င်းတို့ကို မမြင်ရအောင် ပြုလုပ်ထားသည်။ သင်၏ အပြည့်အစုံကို စစ်ဆေးပါ။ SBOM သေချာစေရန်- အားနည်းချက်ရှိသော React server package များပေါ်တွင် transitive dependencies မကျန်တော့ပါ၊ framework update များသည် RSC အကောင်အထည်ဖော်မှုဟောင်းများကို မတော်တဆ မိတ်ဆက်ခြင်းမရှိပါ။
ပိတ် Thoughts
React2Shell သည် မကြာသေးမီနှစ်များအတွင်း အဆိုးရွားဆုံး JavaScript ဂေဟစနစ် အားနည်းချက်များထဲတွင် ပါဝင်ပြီး၊ exploit သည် ရှုပ်ထွေးသောကြောင့်မဟုတ်ဘဲ RSC သည် ယနေ့ခေတ် tooling များကို နက်ရှိုင်းစွာ လုပ်ဆောင်နေသောကြောင့်ဖြစ်သည်။ ယခုအခါ ဂေဟစနစ်တစ်လျှောက်တွင် patch များ ရရှိနိုင်ပြီဖြစ်သောကြောင့် အဖွဲ့များသည် အဆင့်မြှင့်တင်မှုများကို အမြန်ဆုံး ထုတ်လုပ်မှုထဲသို့ တွန်းအားပေးရမည်ဖြစ်သည်။
သင့်အပလီကေးရှင်းသည် React ၏ server features များကို တိုက်ရိုက်ဖြစ်စေ၊ သွယ်ဝိုက်၍ဖြစ်စေ အသုံးပြုပါက ဤ vulnerability ကို ထိပ်တန်းဦးစားပေးပြင်ဆင်မှုတစ်ခုအဖြစ် သတ်မှတ်ရမည်။






