TL, DR
React2Shell (CVE-2025-55182) чухал зүйлийг бий болгодог RCE-ийн эрсдэл даяар React Server Components (RSC) мөн тэдгээрийг суулгасан хүрээнүүд, үүнд орно Дараа нь.jsУчир нь эмзэг байдал нь дотор нь оршдог. RSC цувралжуулалт болон цувралжуулалтаас татгалзах давхаргад халдагчид HTTP хүсэлт болон өдөөгчийг илгээж болно баталгаажаагүй алсаас код гүйцэтгэх, багууд анхдагч framework тохиргоог ажиллуулсан ч гэсэн. Дараа нь.js програмууд нь хүлээн авч, боловсруулдаг тул хамгийн өндөр өртөлттэй тулгардаг React Flight анхдагчаар HTTP-ээр дамжуулан ачаалал өгдөг.
Алдаа нь олон хувилбарт нөлөөлдөг React серверийн багцууд, мөн халдагчид үүнийг ашиглахын тулд тусгай програмын логик шаардлагагүй. Аюулгүй байдлын судлаачид бараг 100% найдвартай байдлыг харуулж байгаа бөгөөд эрт үеийн сканнерууд нь олон үүлэн орчин эмзэг байгааг харуулж байна. Дараа нь.js жишээ. Багууд нэн даруй нөхөх ёстой мөн багасгахын тулд тэдний бүрэн экосистемийг баталгаажуулна React2Shell (CVE-2025-55182) RCE эрсдэл.
11-р сарын 29-нд Meta-ийн алдааны шагналын хөтөлбөрөөр дамжуулан мэдээлсэн ноцтой эмзэг байдал нь JavaScript экосистемд яаралтай хариу арга хэмжээ авахад хүргэсэн.
Зориулалтын CVE-2025-55182, 12-р сарын 3-нд ил болсон, одоо гэж нэрлэгддэг React2Shell нөлөөлдөг хамгийн хүнд хэлбэрийн эмзэг байдал юм React серверийн бүрэлдэхүүн хэсгүүд тэдгээрийг багтаасан фрэймворкуудтай хамт. Эхэндээ тусдаа Next.js эмзэг байдлын танигч (CVE-2025-66478) оноож өгсөн боловч NVD нь хожим нь үүнийг үндсэн React CVE-д давхардсан оруулга болгон нэгтгэсэн.
Үндсэн асуудал нь HTTP хүсэлтээр дамжуулан идэвхжүүлж болох цуваа RSC ачааллыг аюулгүй бус байдлаар зохицуулахтай адил юм. Энэ нь хортой этгээдэд сервер дээр дур мэдэн JavaScript ажиллуулахад хүргэдэг HTTP хүсэлтийг илгээх үүд хаалгыг нээж өгдөг. React-ээр цуваагүйжүүлсэн.
CVE-2025-55182 Тойм
React Server Components нь орчин үеийн фрэймворкуудад гүнзгий нэгтгэгдсэн бөгөөд олон тохиолдолд анхдагчаар идэвхжүүлэгдсэн байдаг. Үүнээс болж програмууд дараах хүчин зүйлсэд өртөж болзошгүй. React2Shell (CVE-2025-55182) Хэдийгээр тэд Серверийн Функцийн төгсгөлийн цэгийг хэзээ ч тодорхой тодорхойлоогүй байсан ч гэсэн. RSC хэрэгжилт одоо ч байгаа бөгөөд энэ нь зөвхөн эмзэг кодын замыг идэвхжүүлж, мэдэгдэхүйц үүсгэхэд хангалттай юм. RCE-ийн эрсдэл.
Алдаа дутагдал нь аргаас үүдэлтэй React Flight протоколl нь тодорхой бүтэцлэгдсэн ачааллыг боловсруулдаг. Хуучин хувилбарууд нь бүтэц хүчинтэй эсвэл хүлээгдэж буй эсэхийг баталгаажуулалгүйгээр ачаалалд өгөгдсөн объектын замуудыг гүйлгэхийг оролдсон. Халдагч энэ процессыг өөрчилж, эцэст нь сервер дээр кодын гүйцэтгэлд хүрч болзошгүй. Баталгаажуулалт, тусгай тохиргоо, аппликейшнд зориулсан логик шаардлагагүй. Асуудал нь бэлэн тохиргоонд байдаг тул, standard Байршуулалтууд нь ямар ч ер бусын нөхцөл байдалгүйгээр ил гардаг.
Халдагчид ""-ыг буруугаар ашигладаг хортой HTTP POST хүсэлтийг илгээх үед мөлжлөг үүсдэг.vm.runInThisContext"механизмыг Серверийн Үйлдлүүдээр дамжуулан. React нь эмзэг төгсгөлийн цэгийг шууд ил гаргадаггүй бол Next.js нь жинхэнэ алсын халдлагын векторыг үүсгэдэг.
Next.js нь аливаа хүсэлтээс ирсэн Flight-ийн ачааллыг хүлээн авч, зохих баталгаажуулалтгүйгээр боловсруулж, React-ийн цуваагүйжүүлэгч рүү дамжуулдаг. Систем нь эдгээр гадаад оролтыг итгэмжлэгдсэн гэж үзэж, халдагчид ...-д хүрэх боломжийг олгодог. алсаас код гүйцэтгэх олон нийтэд нээлттэй төгсгөлийн цэгүүдээр дамжуулан Node.js процессын бүрэн эрхтэй зорилтот сервер дээр.
Анхдагч тохиргоо нь эмзэг хэвээр байгаа тул ноцтой байдал мэдэгдэхүйц нэмэгддэг React2Shell (CVE-2025-55182) ба үр дүн RCE-ийн эрсдэл. A standard Таны үүсгэсэн Next.js програм create-next-app ямар ч өөрчлөн тохируулсан код эсвэл тохиргооны өөрчлөлт шаардахгүйгээр өөрийгөө илчилдэг. Аюулгүй байдлын судлаачид ашиглалтын найдвартай байдлыг бараг 100% баталгаажуулж, үүлэн орчны 39% нь эмзэг тохиолдлуудыг ажиллуулдаг бол бүх орчны 44% нь олон нийтэд нээлттэй Next.js програмуудыг ажиллуулдаг гэж мэдээлсэн. React2Shell.
React2Shell-д өртөхийг ойлгох нь
Эмзэг хувилбарууд нь олон хувилбарыг хамардаг:
| Бүрэлдэхүүн хэсэг | Нөлөөлөлд өртсөн хувилбарууд |
|---|---|
| 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 |
Олон фрэймворкууд нь гол цөмдөө RSC дэмжлэгийг суулгадаг тул програмууд нь ихэвчлэн үүнийг мэдэлгүйгээр эмзэг кодыг өвлөн авдаг. Эдгээр багцуудыг илгээдэг аливаа фрэймворк эсвэл багцлагч нь програмыг React2Shell (CVE-2025-55182) болон түүний RCE эрсдэлд өртүүлж болзошгүй. Үүнд дараахь зүйлс орно:
- Next.js (Апп чиглүүлэгч)
- React Router RSC-ийн урьдчилсан тойм
- Vite RSC залгаас
- Parcel RSC залгаас
- Редвуд SDK
- Ваку
- Экспо
Next.js нь анхдагчаар HTTP дээр RSC-тэй холбоотой төгсгөлийн цэгүүдийг ашигладаг тул онцгой нөлөөлсөн. 14.3.0 канарийн бүтээлтүүд, ихэнхтэй нь хамт 15.х мөн эрт 16.х хувилбарууд нь эмзэг хэрэгжилтийг агуулдаг. Канари ажиллуулж буй хэн бүхэн 14.3.0-канари.77 эсвэл дараа нь хийх ёстой руу буцах тогтвортой 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 GitHub PoC-ууд нь React/Next.js-ийн хөгжүүлэгчидтэй хувийн байдлаар хуваалцсан эксплойттой таарахгүй байгаа бөгөөд түүний өөрийн PoC.
Олон нийтийн эрт үеийн оролдлогуудын гол асуудал бол мөлжлөг нь тэдний эсрэг амжилттай болохыг хүлээн зөвшөөрөхгүй байх явдал юм. standard Next.js байршуулалтууд нь тодорхой програмын логик эсвэл сервер талын функцуудыг ашиглах шаардлагагүйгээр хийгддэг.
Олон байгууллагын аюулгүй байдлын судлаачид эмзэг байдлыг илрүүлэх нь зүгээр л RSC байгаа эсэхийг тодорхойлохоос илүү ихийг шаарддаг гэдгийг онцолсон. Assetnote-ийн баг нийтэлсэн найдвартай илрүүлэх арга болон сканер ямар ч ашиглалтын логик ашиглахгүйгээр асуудлыг баталгаажуулах чадвартай. Metasploit удахгүй боломжтой ашиглалт энэ эмзэг байдлын хувьд ч мөн адил.
Илрүүлэх арга нь 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 серверийн багцын хамаарлууд, Framework түвшний RSC хэрэгжүүлэлтүүд (Next.js, Waku, Redwood гэх мэт), `create-next-app` эсвэл үүнтэй төстэй шат дамжлагын хэрэгслүүдээр бүтээгдсэн програмууд болон хуучирсан үндсэн зураг агуулсан контейнержуулсан програмуудад онцгой анхаарал хандуулна уу.
Програм хангамжийн бүтцийн шинжилгээ (SCA) гэх мэт хэрэгслүүд Xygeni's 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-ийн ачааллыг зохицуулах хатуу баталгаажуулалтыг нэвтрүүлж, ашиглалтыг зөвшөөрдөг аюултай шинж чанарыг салгахаас сэргийлдэг.
Автоматжуулсан нөхөн сэргээх хэрэгслүүд, тухайлбал Xygeni-ийн автоматаар нөхөн сэргээх функц, нь том кодын баазууд дээрх үйл явцыг хурдасгаж чадна.
Түр зуурын WAF хамгаалалтыг хэрэгжүүлэх:
Нөхөөсүүд таны байршуулалтаар дамжин тархаж байх үед pipeline, шууд хамгаалалтын тулд Вэб програмын галт ханын дүрмийг идэвхжүүлнэ үү. Томоохон үүлэн үйлчилгээ үзүүлэгчид яаралтай тусламжийн дүрмийн багцуудыг гаргасан, CloudflareReact урсгалыг проксигоор холбох үед бүх түвшинг автоматаар хамгаалах AWS, Акамай, Хурдан, Google Клауд Шилжилтийн үед хамгаалалтын давхарга үүсгэхийн тулд эдгээр хяналтыг нэн даруй идэвхжүүлэх ижил төстэй хамгаалалтын дүрмүүдтэй байх.
Сэжигтэй HTTP урсгалыг хянах:
Ашиглалтын оролдлогын үзүүлэлтүүдийн бүртгэл болон анхааруулгыг тохируулах: Буруу хэлбэртэй эсвэл гэнэтийн RSC нислэгийн протоколын ачаалал, RSC төгсгөлийн цэгүүд дээрх 500 алдааны ер бусын хэв маяг, сэжигтэй `Дараагийн үйлдэл` эсвэл `Дараагийн чиглүүлэгч-төлөв-мод` толгойтой POST хүсэлтүүд, олон хэсэгтэй ачаалалтай `/_next/` замууд руу давтагдсан хүсэлтүүд
Програм хангамжийн материалын жагсаалтаа баталгаажуулна уу:
Олон фрэймворкууд нь RSC хамаарлуудыг ил тод байдлаар багцалдаг бөгөөд энэ нь гадаргуугийн түвшний хамаарлын тоймд харагдахгүй болгодог. Бүрэн гүйцэд шалгах SBOM дараах зүйлсийг баталгаажуулахын тулд: Эмзэг React серверийн багцуудаас ямар ч шилжилтийн хамаарал байхгүй, framework шинэчлэлтүүд нь санамсаргүйгээр хуучин RSC хэрэгжүүлэлтүүдийг нэвтрүүлээгүй.
Хаалттай санаанууд
React2Shell нь сүүлийн жилүүдэд JavaScript экосистемийн хамгийн ноцтой эмзэг байдлын нэг болж байгаа бөгөөд энэ нь эксплойт нь нарийн төвөгтэй учраас биш, харин RSC нь өнөөгийн хэрэгслүүдэд маш гүнзгий нэвтэрдэг учраас юм. Одоо экосистем даяар нөхөөсүүд боломжтой болсон тул багууд шинэчлэлтүүдийг аль болох хурдан үйлдвэрлэлд нэвтрүүлэх ёстой.
Хэрэв таны аппликейшн React-ийн серверийн функцуудыг шууд болон шууд бусаар ашиглаж байгаа бол та энэ эмзэг байдлыг нэн тэргүүний засвар гэж үзэх ёстой.






