React2Shell - CVE-2025-55182 - Ewu RCE

React2Shell: CVE-2025-55182 àti Ewu RCE Next.js

TL; DR

React2Shell (CVE-2025-55182) ṣẹda pataki kan Ewu RCE kọja Àwọn Ẹ̀yà Olùpèsè Ìdáhùn (RSC) àti àwọn ètò tí ó fi wọ́n sí, pẹ̀lú Nigbamii.jsNítorí pé àìlera náà ń gbé inú RSC serialization àti deserialization layer, àwọn akópa le fi ìbéèrè HTTP tí a ṣe àti okunfa ránṣẹ́ laigba aṣẹ ipaniyan koodu latọna jijin, kódà nígbà tí àwọn ẹgbẹ́ bá ń ṣe àwọn ìṣètò ètò àìyípadà. Nigbamii.js Àwọn ohun èlò ìlò dojúkọ ìfarahàn gíga jùlọ nítorí wọ́n gbà àti ṣe ìtọ́jú wọn Ìrìn Àjò React awọn ẹru isanwo lori HTTP nipasẹ aiyipada.

Àṣìṣe náà ní ipa lórí ọ̀pọ̀lọpọ̀ irú Awọn idii olupin React, àti pé àwọn olùkọlù kò nílò ìlànà ìlò àdáni láti lò ó. Àwọn olùwádìí ààbò fi hàn pé ó fẹ́rẹ̀ẹ́ ṣeé gbẹ́kẹ̀lé tó 100%, àti pé àwọn ìwòran àkọ́kọ́ fi hàn pé ọ̀pọ̀ àyíká àwọsánmà ló ń ní ewu. Nigbamii.js awọn apeere. Awọn ẹgbẹ gbọdọ wa ni ipolowo lẹsẹkẹsẹ kí wọ́n sì fọwọ́ sí gbogbo ètò ìṣẹ̀dá wọn láti dínkù Ewu RCE React2Shell (CVE-2025-55182).

Àìlera pàtàkì kan tí wọ́n ròyìn nípasẹ̀ ètò ìsanwó kòkòrò Meta ní ọjọ́ kọkàndínlọ́gbọ̀n oṣù kọkànlá ti fa àwọn ìdáhùn kíákíá káàkiri ètò JavaScript.

Apẹrẹ CVE-2025-55182, tí a ṣí ní ọjọ́ kẹta oṣù Kejìlá tí a ń pè ní React2Shell jẹ́ ewu tó ga jùlọ tó lè fa ìṣòro Fesi Server irinše pẹ̀lú àwọn ètò tí ó fi wọ́n kún. Ní àkọ́kọ́, a yan àmì ìdámọ̀ àìlera Next.js (CVE-2025-66478) mìíràn, ṣùgbọ́n NVD lẹ́yìn náà so ó pọ̀ mọ́ React CVE àkọ́kọ́ gẹ́gẹ́ bí ìkọsílẹ̀ onípele méjì.

Ìṣòro tó wà ní ìpìlẹ̀ náà ni bí a ṣe ń ṣàkóso àwọn ẹrù RSC tó wà ní ìpele tó léwu tí a lè fi ìbéèrè HTTP ṣe. Èyí ṣí ìlẹ̀kùn sílẹ̀ fún ẹni tó ń ṣe ibi láti fi ìbéèrè HTTP tí a yípadà ránṣẹ́ tí yóò mú kí JavaScript ṣiṣẹ́ lórí olupin náà lẹ́yìn tí a bá ti ṣe é. tí React kọ sílẹ̀.

CVE-2025-55182 Akopọ

Àwọn ohun èlò React Server ti ṣọ̀kan mọ́ àwọn ètò ìgbàlódé, àti ní ọ̀pọ̀lọpọ̀ ìgbà, a máa ń ṣiṣẹ́ nípasẹ̀ àìyípadà. Nítorí èyí, àwọn ohun èlò lè fara hàn sí React2Shell (CVE-2025-55182) kódà bí wọn kò bá tiẹ̀ ṣàlàyé ìparí Iṣẹ́ Server kan ní pàtó. Ìmúṣe RSC ṣì wà, èyí nìkan tó láti mú àwọn ipa ọ̀nà kódù tó léwu ṣiṣẹ́ àti láti ṣẹ̀dá pàtàkì Ewu RCE.

Àbùkù náà wá láti ọ̀nà tí a gbà ń ṣe é Ilana ọkọ ofurufu Reactl ń ṣe àgbékalẹ̀ àwọn ẹrù ìsanwó kan. Àwọn ẹ̀yà àtijọ́ gbìyànjú láti rìn àwọn ipa ọ̀nà ohun tí a pèsè nínú ẹrù ìsanwó láìjẹ́rìí pé ètò náà wúlò tàbí a retí. Olùkọlù kan lè darí ìlànà yìí kí ó sì dé ibi ìṣe kódì lórí olupin náà nígbẹ̀yìn gbẹ́yín. Kò sí ìfọwọ́sowọ́pọ̀, kò sí ìṣètò pàtàkì, kò sì sí ìlànà pàtó kan tí a nílò fún àpù. Nítorí pé ìṣòro náà wà nínú àwọn ìṣètò tí kò sí nínú àpótí, standard Àwọn ìfiránṣẹ́ ni a fi hàn láìsí àìní àwọn ipò àìdára kankan.

Ìwà ìbàjẹ́ máa ń wáyé nígbà tí àwọn olùkọlù bá fi àwọn ìbéèrè HTTP POST búburú ránṣẹ́ tí wọ́n sì ń lo “vm.runInThisContext"ẹ̀rọ nípasẹ̀ Àwọn Ìgbésẹ̀ Server. Bó tilẹ̀ jẹ́ pé React kò fi òpin ìpalára hàn ní tààrà, Next.js ṣe bẹ́ẹ̀, ó ń ṣẹ̀dá vector ìkọlù láti ọ̀nà jíjìn gidi kan. 

Next.js gba àwọn ẹrù ìsanwó ọkọ̀ òfurufú láti ìbéèrè èyíkéyìí, ó ń ṣe àgbékalẹ̀ wọn láìsí ìfọwọ́sowọ́pọ̀ tó yẹ, ó sì ń fi wọ́n ránṣẹ́ sí deserializer React. Ètò náà ń wo àwọn ìfiranṣẹ́ òde wọ̀nyí gẹ́gẹ́ bí èyí tí a lè gbẹ́kẹ̀ lé, èyí tí ó ń jẹ́ kí àwọn olùkọlù lè ṣe àṣeyọrí ipaniyan koodu latọna nipasẹ awọn opin ti o wa ni gbangba pẹlu awọn ẹtọ ilana Node.js ni kikun lórí olupin afojusun naa. 

Ìwúwo náà pọ̀ sí i gidigidi nítorí pé àwọn ìṣètò àìyípadà ṣì jẹ́ ewu sí React2Shell (CVE-2025-55182) ati abajade Ewu RCE. A standard Ohun elo Next.js ti o ṣẹda pẹlu create-next-app Ó ń fi ara rẹ̀ hàn láìsí pé ó nílò àyípadà sí kódì àṣà tàbí ìṣètò. Àwọn olùwádìí ààbò jẹ́rìí sí i pé ó fẹ́rẹ̀ẹ́ jẹ́ 100% ìgbẹ́kẹ̀lé ìlòkulò, wọ́n sì ròyìn pé 39% àwọn àyíká àwọsánmà ló ń lo àwọn ìṣẹ̀lẹ̀ tí ó lè ṣe àìlera, nígbà tí 44% gbogbo àyíká ń lo àwọn ohun èlò Next.js tí ó fara hàn gbangba tí ó ní ipa lórí React2Shell.

Lílóye Ìfarahàn sí React2Shell

Àwọn ẹ̀yà tí ó ní ìpalára náà ní ọ̀pọ̀lọpọ̀ ìtújáde:

paatiAwọn ẹya ti o fowo
fesi-server-dom-webpack19.0, 19.1.0, 19.1.1, 19.2.0
react-server-dom-parcel19.0, 19.1.0, 19.1.1, 19.2.0
react-server-dom-turbopack19.0, 19.1.0, 19.1.1, 19.2.0

Nítorí pé ọ̀pọ̀lọpọ̀ àwọn ètò ní àtìlẹ́yìn RSC nínú ààrín, àwọn ètò sábà máa ń jogún koodu aláìlera láì mọ̀ ọ́n. Èyíkéyìí ètò tàbí ohun èlò ìdìpọ̀ tí ó bá ń gbé àwọn ètò wọ̀nyí ránṣẹ́ lè fi ohun èlò náà hàn sí React2Shell (CVE-2025-55182) àti ewu RCE rẹ̀. Èyí pẹ̀lú:

  • Next.js (Olutọpa ohun elo)
  • Àwòrán RSC React Router
  • Àfikún Vite RSC
  • Àfikún Parcel RSC
  • Redwood SDK
  • Waku
  • Apewo

Next.js ní ipa pàtàkì nítorí pé ó ń lo àwọn ìparí tí ó níí ṣe pẹ̀lú RSC lórí HTTP nípasẹ̀ àìyípadà. Àwọn ẹ̀yà tí ó bẹ̀rẹ̀ pẹ̀lú Àwọn ìkọ́lé canary 14.3.0, pẹ̀lú ọ̀pọ̀lọpọ̀ 15.x ati ni kutukutu 16.x Àwọn ìtújáde, ní ìmúṣẹ tí ó lè pani lára. 14.3.0-canary.77 tabi nigbamii yẹ ki o pada si iduroṣinṣin 14.x ẹ̀ka títí tí a ó fi tẹ àtúnṣe kanary kan jáde.

Àwọn ẹ̀yà Next.js tí a ti yípadà ni:

paatiÀwọn Ẹ̀yà Tí A Túnṣe
Nigbamii.js15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7

Àwọn PoC gbogbogbò àti Ṣíṣàwárí Gbẹ́kẹ̀lé

Lẹ́yìn ìṣípayá àìlera náà, ọ̀pọ̀lọpọ̀ àwọn èrò tí a gbà pé ó jẹ́ ẹ̀rí-ọkàn bẹ̀rẹ̀ sí í tàn káàkiri. Ọ̀pọ̀ nínú wọn kò péye tàbí wọ́n dá lórí àwọn àbá tí kò péye. Òǹkọ̀wé àìlera náà, Lachlan Davidson, jẹ́rìí sí i ní gbangba ní react2shell pé àwọn GitHub PoCs tí ń tànkálẹ̀ kò bá ìlòkulò tí a pín ní ìkọ̀kọ̀ pẹ̀lú àwọn olùtọ́jú React/Next.js mu, ó sì pèsè rẹ̀ fún wọn. PoC tirẹ̀

Iṣoro pataki kan pẹlu awọn igbiyanju gbogbogbo ni kutukutu ni ikuna wọn lati mọ pe ilokulo n ṣaṣeyọri lodi si standard Àwọn ìgbékalẹ̀ Next.js láìsí pé ó nílò ìlànà ìṣiṣẹ́ pàtó tàbí iṣẹ́ ẹ̀gbẹ́ olupin láti wà níbẹ̀.

Àwọn olùwádìí nípa ààbò láti ọ̀pọ̀lọpọ̀ àjọ ti tẹnumọ́ pé wíwá àléébù náà nílò ju wíwulẹ̀ dámọ̀ bóyá RSC wà níbẹ̀ lọ. Ẹgbẹ́ Assettnote tẹ ìwé kan jáde ọna wiwa ti o gbẹkẹle ati ki o kan scanner tí ó lè fi ìdí ọ̀rọ̀ náà múlẹ̀ láìlo ìlànà ìlòkulò kankan. Metasploit yóò ní ilokulo ti o wa fún àìlera yìí pẹ̀lú. 

Ọ̀nà ìwádìí náà lo bí React Server ṣe ń ṣe àkóso àwọn ìtọ́kasí ohun ìní nípa lílo àwọn ààlà ìṣàn inú ReactFlightClientConfigBundlerWebpack.js/requireModule() iṣẹ́. Nígbà tí àwọn ẹ̀yà tí ó ní ìpalára bá ń ṣe àgbékalẹ̀ ẹrù iṣẹ́ onípele púpọ̀ tí a ṣètò ní pàtó tí ó gbìyànjú láti kọjá àwọn ipa ọ̀nà ohun tí kò sí, wọ́n máa ń fa àwọn ìdáhùn àṣìṣe tí a lè sọ tẹ́lẹ̀. Ìbéèrè àyẹ̀wò kan máa ń fi ìlànà ìtọ́kasí ránṣẹ́ bíi `$1:a:a` so pọ̀ mọ́ ohun tó ṣofo. Àwọn ìṣiṣẹ́ tó lè farapa gbìyànjú láti yanjú èyí gẹ́gẹ́ bí wíwọlé sí ohun ìní tó wà ní ìtòsí lórí iye tí a kò sọ, èyí tó máa yọrí sí ìyàsọ́tọ̀. Ẹ̀rọ ìṣiṣẹ́ náà máa ń dá ipò 500 padà pẹ̀lú àpẹẹrẹ àṣìṣe tó yàtọ̀ nínú ara ìdáhùn. 

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]]; }  

Àwọn ìgbésẹ̀ lẹ́sẹ̀kẹsẹ̀ fún àwọn àjọ tí wọ́n ń dojúkọ React2Shell (CVE-2025-55182) àti Ewu RCE

Ṣe àyẹ̀wò pípéye ti ipilẹ koodu rẹ ati awọn ohun elo ti a fi ranṣẹ láti wá àwọn ẹ̀yà àkójọpọ̀ tó léwu. San àfiyèsí pàtàkì sí àwọn ìgbẹ́kẹ̀lé àkójọpọ̀ olupin React taara, àwọn ìmúṣẹ RSC ìpele Framework (Next.js, Waku, Redwood, àti bẹ́ẹ̀ bẹ́ẹ̀ lọ), àwọn ohun èlò tí a kọ́ pẹ̀lú `create-next-app` tàbí àwọn irinṣẹ́ scaffolding tó jọra àti àwọn ohun èlò tí a fi sínú àpótí tí ó lè ní àwọn àwòrán ìpìlẹ̀ àtijọ́ nínú.

Ìwádìí Àkójọpọ̀ Softwarẹ (SCA) irinṣẹ bi Xygeni's SCA le ṣe awari awọn igbẹkẹle ti o kan ni aifọwọyi jakejado akojo software rẹ. 

Ṣe àtúnṣe lẹ́sẹ̀kẹsẹ̀:

Àtúnṣe sí àwọn àtúnṣe tí a ti ṣàtúnṣe bíi 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) àti àwọn àkójọ ìlànà èyíkéyìí tí ó ní RSC nínú. Àwọn àtúnṣe wọ̀nyí ń ṣe àgbékalẹ̀ ìfọwọ́sowọ́pọ̀ tí ó lágbára fún bíbójútó ẹrù RSC àti ìdènà ìdínkù sí ìtọ́kasí ohun ìní tí kò léwu tí ó ń jẹ́ kí ìlòkulò ṣeé ṣe. 

Awọn irinṣẹ atunṣe adaṣe laifọwọyi, gẹgẹbi Ẹ̀yà àtúnṣe ara ẹni ti Xygeni, le mu ilana naa yara ju awọn ipilẹ koodu nla lọ.

Ṣe àgbékalẹ̀ àwọn ààbò WAF ìgbà díẹ̀:

Bí àwọn àpáàtì bá ń tàn kálẹ̀ nípasẹ̀ ìgbékalẹ̀ rẹ pipeline, mu awọn ofin ogiriina ohun elo ayelujara ṣiṣẹ fun aabo lẹsẹkẹsẹ. Awọn olupese awọsanma pataki ti tu awọn ofin pajawiri silẹ, Oju awọsanmaÀàbò àdánidá fún gbogbo ìpele nígbà tí React traffic bá wà ní ipò ìdúróṣinṣin àti AWS, Akamai, Kíákíá, Google Cloud ní àwọn òfin ààbò tó jọra tó wà. Mu àwọn ìṣàkóso wọ̀nyí ṣiṣẹ́ lẹ́sẹ̀kẹsẹ̀ láti ṣẹ̀dá ìpele ààbò kan ní àkókò ìyípadà.

Abojuto fun ijabọ HTTP ti o fura si:

Ṣètò ìforúkọsílẹ̀ àti ìkìlọ̀ fún àwọn àmì ìgbìyànjú ìlòkulò: Àwọn ẹrù ìnáwó RSC Flight tí kò dára tàbí tí a kò retí, àwọn àpẹẹrẹ àìdára ti àṣìṣe 500 lórí àwọn ìparí RSC, àwọn ìbéèrè POST pẹ̀lú àwọn àkọlé `Next-Action` tàbí `Next-Router-State-Tree` tí a fura sí, Àwọn ìbéèrè tí a tún ṣe sí àwọn ipa ọ̀nà `/_next/` pẹ̀lú àwọn ẹrù ìnáwó púpọ̀

Ṣe àyẹ̀wò ìwé-àṣẹ àwọn ohun èlò sọ́fítíwè rẹ:

Ọ̀pọ̀lọpọ̀ àwọn ètò ló ń kó àwọn ìgbẹ́kẹ̀lé RSC jọ ní kedere, èyí tó ń mú kí wọ́n jẹ́ èyí tí a kò lè rí nínú àwọn àtúnyẹ̀wò ìgbẹ́kẹ̀lé ipele ojú ilẹ̀. Ṣe àyẹ̀wò gbogbo rẹ̀. SBOM láti rí i dájú pé: Kò sí ìgbẹ́kẹ̀lé ìgbà díẹ̀ lórí àwọn ìpèsè React tó léwu tó kù, àwọn àtúnṣe ètò kò tíì fi àwọn ìṣe RSC àtijọ́ hàn láìmọ̀ọ́mọ̀.

Awọn ero ti o pari

React2Shell wà lára ​​àwọn ìṣòro tó le jùlọ nínú ètò JavaScript ní àwọn ọdún àìpẹ́ yìí, kìí ṣe nítorí pé iṣẹ́ náà díjú ṣùgbọ́n nítorí pé RSC ń ṣiṣẹ́ dáadáa nínú àwọn irinṣẹ́ òde òní. Ní báyìí tí àwọn àtúnṣe ti wà káàkiri ètò náà, àwọn ẹgbẹ́ gbọ́dọ̀ ti àwọn àtúnṣe sí iṣẹ́ náà kíákíá bí ó ti ṣeé ṣe tó.

Tí ohun èlò rẹ bá ń lo àwọn ẹ̀yà ara ẹ̀rọ React, yálà ní tààrà tàbí ní tààrà, o gbọ́dọ̀ wo àìlera yìí gẹ́gẹ́ bí àtúnṣe pàtàkì jùlọ.

àwọn irinṣẹ́ ìwádìí-àkójọpọ̀-ẹ̀rọ-sca-tools
Ṣe àfiyèsí, ṣe àtúnṣe, kí o sì dáàbò bo àwọn ewu sọ́fítíwè rẹ
Gba Akaunti Ọfẹ rẹ.
Ko si kaadi kirẹditi ti o nilo.

Ṣe aabo fun idagbasoke ati ifijiṣẹ sọfitiwia rẹ

pẹlu Xygeni Product Suite