React2Shell - CVE-2025-55182 - Risiko RCE

React2Shell: CVE-2025-55182 lan Risiko RCE Next.js

TL; DR

React2Shell (CVE-2025-55182) nggawe kritis Risiko RCE tengen Komponen Server React (RSC) lan kerangka kerja sing nandur modal, kalebu Sabanjure.jsAmarga kerentanan kasebut ana ing njero RSC lapisan serialisasi lan deserialisasi, penyerang bisa ngirim panjalukan HTTP sing digawe lan micu eksekusi kode jarak jauh sing ora diautentikasi, sanajan tim mbukak konfigurasi framework standar. Sabanjure.js aplikasi ngadhepi paparan paling dhuwur amarga nampa lan ngolah Penerbangan Reaksi muatan liwat HTTP minangka standar.

Cacat kasebut mengaruhi pirang-pirang versi Paket server React, lan penyerang ora butuh logika aplikasi khusus kanggo ngeksploitasi. Peneliti keamanan nuduhake keandalan meh 100%, lan pindai awal nuduhake manawa akeh lingkungan maya sing rentan. Sabanjure.js kedadean Tim kudu langsung ndandani lan validasi ekosistem lengkap kanggo nyuda Risiko RCE React2Shell (CVE-2025-55182).

Kerentanan kritis sing dilapurake liwat program bug bounty Meta tanggal 29 November wis micu respon darurat ing ekosistem JavaScript.

Ditunjuk CVE-2025-55182, diumumake tanggal 3 Desember saiki diarani minangka React2Shell minangka kerentanan kanthi tingkat keparahan maksimal sing mengaruhi Komponen Server React bebarengan karo framework sing nggabungake. Wiwitane, pengenal kerentanan Next.js sing kapisah (CVE-2025-66478) diwenehake, nanging NVD banjur nggabungake dadi React CVE utama minangka entri duplikat.

Masalah sing ndasari yaiku penanganan muatan RSC serial sing padha lan ora aman sing bisa dipicu liwat panjalukan HTTP. Iki mbukak lawang kanggo aktor jahat kanggo ngirim panjalukan HTTP sing dimanipulasi sing nyebabake JavaScript sewenang-wenang mlaku ing server sawise dideserialisasi dening React.

CVE-2025-55182 Ringkesan

Komponen React Server wis terintegrasi kanthi jero menyang framework modern, lan ing pirang-pirang kasus diaktifake kanthi standar. Amarga iki, aplikasi bisa uga kena pengaruh React2Shell (CVE-2025-55182) sanajan dheweke ora nate nemtokake titik pungkasan Fungsi Server kanthi eksplisit. Implementasi RSC isih ana, lan iku wae wis cukup kanggo ngaktifake jalur kode sing rentan lan nggawe sing signifikan Risiko RCE.

Cacat kasebut asale saka cara Protokol Penerbangan Reactl ngolah muatan terstruktur tartamtu. Versi lawas nyoba mlaku ing jalur obyek sing diwenehake ing muatan tanpa verifikasi manawa struktur kasebut valid utawa diarepake. Penyerang bisa ngapusi proses iki lan pungkasane nggayuh eksekusi kode ing server. Ora ana otentikasi, ora ana konfigurasi khusus, lan ora ana logika khusus aplikasi sing dibutuhake. Amarga masalah kasebut ana ing konfigurasi sing wis ana, standard panyebaran diekspos tanpa mbutuhake kahanan sing ora biasa.

Eksploitasi kedadeyan nalika penyerang ngirim panjalukan HTTP POST sing mbebayani sing nyalahgunakake "vm.runInThisContext"mekanisme liwat Server Actions. Sanajan React ora langsung mbabarake titik pungkasan sing rentan, Next.js nindakake, nggawe vektor serangan jarak jauh sing asli. 

Next.js nampa muatan Flight saka panjalukan apa wae, ngolah tanpa validasi sing tepat, lan ngirim menyang deserializer React. Sistem kasebut nganggep input eksternal iki minangka dipercaya, saengga para penyerang bisa entuk eksekusi kode jarak jauh liwat titik pungkasan sing bisa diakses publik kanthi hak istimewa proses Node.js lengkap ing server target. 

Keruwetan mundhak sacara signifikan amarga konfigurasi standar tetep rentan marang React2Shell (CVE-2025-55182) lan asil Risiko RCE. A standard Aplikasi Next.js sing sampeyan gawe create-next-app mbukak awake dhewe tanpa mbutuhake kode khusus utawa owah-owahan konfigurasi. Peneliti keamanan ngonfirmasi meh 100% linuwih eksploitasi lan nglaporake manawa 39% lingkungan maya mbukak instansi sing rentan, dene 44% kabeh lingkungan mbukak aplikasi Next.js sing kapapar umum sing kena pengaruh React2Shell.

Ngerteni Paparan React2Shell

Versi sing rentan nyakup pirang-pirang rilis:

ComponentVersi sing kena pengaruh
reaksi-server-dom-webpack19.0, 19.1.0, 19.1.1, 19.2.0
parsel-dom-server-reaksi19.0, 19.1.0, 19.1.1, 19.2.0
paket-turbo-dom-server-react19.0, 19.1.0, 19.1.1, 19.2.0

Amarga akeh framework sing nyematke dhukungan RSC ing intine, aplikasi asring nurunake kode sing rentan tanpa disadari. Sembarang framework utawa bundler sing ngirim paket kasebut bisa mbabarake aplikasi kasebut menyang React2Shell (CVE-2025-55182) lan risiko RCE. Iku kalebu:

  • Next.js (Router aplikasi)
  • Pratinjau RSC Router React
  • Plugin Vite RSC
  • Plugin RSC Parcel
  • SDK Redwood
  • Waku
  • Expo

Next.js kena pengaruh banget amarga nggunakake titik pungkasan sing ana gandhengane karo RSC liwat HTTP minangka standar. Versi sing diwiwiti karo 14.3.0 wujud manuk kenari, bebarengan karo umume 15.x lan awal 16.x rilis, ngemot implementasi sing rentan. Sapa wae sing mbukak kenari 14.3.0-kenari.77 utawa mengko kudune bali menyang stabil 14.x cabang nganti versi kenari sing ditambal diterbitake.

Versi Next.js sing wis ditambal kalebu:

ComponentVersi sing Ditambal
Sabanjure.js15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7

PoC Publik lan Deteksi sing Bisa Dipercaya

Sawisé diungkapké babagan kerentanan, akèh bukti konsep sing konon wiwit nyebar. Akèh sing ora akurat utawa adhedhasar asumsi sing salah. Penulis kerentanan asli, Lachlan Davidson, ngonfirmasi kanthi umum ing react2shell manawa PoC GitHub sing beredar ora cocog karo eksploitasi sing dienggo bareng kanthi pribadi karo pengelola React/Next.js lan nyedhiyakake PoC dhewe

Masalah utama karo upaya awal publik yaiku kegagalan kanggo ngerteni manawa eksploitasi sukses nglawan standard Penyebaran Next.js tanpa mbutuhake logika aplikasi utawa fungsi sisih server tartamtu.

Para peneliti keamanan saka pirang-pirang organisasi nandheske yen ndeteksi kerentanan mbutuhake luwih saka mung ngenali apa RSC ana. Tim Assetnote nerbitake cara deteksi sing bisa dipercaya lan scanner bisa ngonfirmasi masalah kasebut tanpa nggunakake logika eksploitasi apa wae. Metasploit bakal rauh duwe eksploitasi sing kasedhiya kanggo kerentanan iki uga. 

Pendekatan deteksi nggunakake kepiye React Server nangani referensi properti objek nggunakake pembatas titik loro ing njero ReactFlightClientConfigBundlerWebpack.js/requireModule() fungsi. Nalika versi sing rentan ngolah muatan multipart sing terstruktur khusus sing nyoba ngliwati jalur objek bersarang sing ora ana, dheweke bakal micu respon kesalahan sing bisa diprediksi. Panjaluk diagnostik ngirim pola referensi kaya `$1:a:a` dipasangake karo obyek kosong. Implementasi sing rentan nyoba ngatasi iki minangka akses properti bersarang ing nilai sing ora ditemtokake, sing nyebabake pengecualian. Server ngasilake status 500 kanthi pola digest kesalahan sing khas ing awak respon. 

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

Tindakan Langsung kanggo Organisasi sing Ngadhepi React2Shell (CVE-2025-55182) lan Risiko RCE

Lakoni pindai lengkap basis kode lan aplikasi sing wis disebarake kanggo nemokake versi paket sing rentan. Wenehana perhatian khusus marang dependensi paket server React langsung, implementasi RSC tingkat Framework (Next.js, Waku, Redwood, lsp.), aplikasi sing digawe nganggo `create-next-app` utawa alat scaffolding sing padha lan aplikasi sing dikemas sing bisa uga ngemot gambar dasar sing wis lawas.

Analisis Komposisi Piranti Lunak (SCA) piranti kaya Xygeni's SCA bisa kanthi otomatis nemokake dependensi sing kena pengaruh ing saindenging inventaris piranti lunak sampeyan. 

Segera pasang patch:

Nganyari versi sing wis ditambal kaya ta 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) lan paket framework apa wae sing kalebu RSC. Nganyari iki ngenalake validasi ketat kanggo penanganan muatan RSC lan nyegah dereferensi properti sing ora aman sing ngidini eksploitasi. 

Piranti remediasi otomatis, kayata Fitur remediasi otomatis Xygeni, bisa nyepetake proses ing basis kode sing gedhe.

Nglakokake Proteksi WAF Sementara:

Nalika patch nyebar liwat penyebaran sampeyan pipeline, aktifake aturan Firewall Aplikasi Web kanggo perlindungan langsung. Panyedhiya maya utama wis ngrilis aturan darurat, cloudflareProteksi otomatis kanggo kabeh tingkatan nalika lalu lintas React diproksi uga AWS, Akamai, Cepet, Google Cloud duwe aturan pertahanan sing padha. Aktifake kontrol iki langsung kanggo nggawe lapisan protèktif sajrone periode transisi.

Monitor lalu lintas HTTP sing mencurigakan:

Konfigurasi pencatatan lan peringatan kanggo indikator upaya eksploitasi: Muatan protokol Penerbangan RSC sing salah utawa ora dikarepke, pola kesalahan 500 sing ora umum ing titik akhir RSC, panjalukan POST kanthi header `Next-Action` utawa `Next-Router-State-Tree` sing mencurigakan, Panjaluk bola-bali menyang jalur `/_next/` kanthi muatan multipart

Verifikasi Daftar Materi Piranti Lunak Sampeyan:

Akeh framework sing nggabungake dependensi RSC kanthi transparan, saengga ora katon ing review dependensi tingkat permukaan. Priksa kabeh SBOM kanggo mesthekake: Ora ana katergantungan transitif ing paket server React sing rentan, pembaruan framework ora sengaja ngenalake implementasi RSC sing luwih lawas.

Panutup Pikiran

React2Shell kalebu salah sawijining kerentanan ekosistem JavaScript sing paling serius ing taun-taun pungkasan, dudu amarga eksploitasi kasebut rumit nanging amarga RSC nglakokake kanthi jero babagan piranti lunak saiki. Saiki patch wis kasedhiya ing saindenging ekosistem, tim kudu ngunggahake menyang produksi kanthi cepet.

Yen aplikasi sampeyan nggunakake fitur server React, kanthi langsung utawa ora langsung, sampeyan kudu nganggep kerentanan iki minangka prioritas utama.

piranti lunak-piranti-sca-piranti-analisis-komposisi
Prioritasake, ndandani, lan amanake risiko piranti lunak sampeyan
Entuk Akun Gratismu.
Ora ana kertu kredit.

Amanake Pangembangan lan Pangiriman Piranti Lunak Sampeyan

karo Suite Produk Xygeni