flawopen.com/Teardowns/cve-2025-55182-react-server-components-rce
CVE-2025-55182: RCE tanpa autentikasi React2Shell (RSC)
CVE-2025-55182 adalah remote code execution tanpa autentikasi pada decoding payload React Server Components (RSC). React mengonfirmasi cacat decoder; Google Threat Intelligence mencatat kampanye downloader, backdoor, dan miner.[1], [4], [5]
Bayangkan petugas memeriksa direktori layanan yang disetujui. Pencarian yang keliru memperlakukan nama turunan dari templat direktori seolah telah didaftarkan pemiliknya. Patch React memeriksa bahwa ekspor modul yang diminta merupakan entri milik modul itu sendiri; advisori publik tidak mengungkap seluruh urutan eksploitasi. Perbarui paket yang terdampak.[1]
Konsep Kunci & Istilah
React Server Components (RSC)- React Server Components: protokol dan paket React untuk server rendering dan pertukaran data Flight.[1]
Pemetaan kerangka kerja
- Referensi CWE untuk kelemahan yang dijelaskan dalam panduan ini: CWE-502
- CISA KEV — ditambahkan 2025-12-05 — CVE-2025-55182
Analisis Akar Masalah (Root Cause)
React mengonfirmasi RCE berasal dari cacat decoding payload untuk endpoint React Server Functions; dukungan RSC saja dapat membuat aplikasi terdampak. Advisory awal menahan detail exploit. Patch upstream publik menambah own-property check di requireModule() dan penanganan error multipart. Cuplikan ini menunjukkan perbaikan konkret, bukan reproduksi decoder atau seluruh rantai.[1], [2]
Versi terdampak dan cakupan deployment React2Shell
| Komponen atau deployment | Penilaian cakupan | Tindakan remediasi |
|---|---|---|
react-server-dom-webpack, react-server-dom-parcel, atau react-server-dom-turbopack versi 19.0, 19.1.0, 19.1.1, atau 19.2.0. | Dukungan RSC sisi server dapat membuat aplikasi terdampak meskipun tidak mendeklarasikan endpoint Server Function; batas server harus dapat dijangkau. | Upgrade lini paket ke 19.0.1, 19.1.2, atau 19.2.1 atau lebih baru sesuai kebutuhan. Bangun ulang dan deploy ulang artefak server. |
| Next.js App Router pada rilis 15.x/16.x terdampak atau 14.3.0-canary.77 dan canary berikutnya. | Integrasi framework terdampak menyertakan paket RSC yang rentan. Jangan menganggap aman hanya karena aplikasi tidak mendeklarasikan endpoint Server Function sendiri. | Gunakan rilis perbaikan pada lini yang sesuai: 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, atau 16.0.7 atau lebih baru. Ini adalah rilis minimum yang tercatat pada advisori yang dirujuk; periksa cabang vendor terkini sebelum rollout. |
| Aplikasi React sisi klien saja tanpa dukungan RSC sisi server. | Di luar cakupan CVE yang didokumentasikan karena tidak memiliki batas decoder server. | Konfigurasi ini tidak memerlukan patch server React2Shell. Evaluasi ulang jika RSC atau komponen server ditambahkan. |
| Deployment dilaporkan telah diperbaiki. | Versi manifest tidak membuktikan bahwa setiap region, layanan pratinjau, worker, atau container yang berjalan menggunakan artefak yang telah diperbaiki. | Verifikasi digest image dan versi paket yang terpasang di lingkungan produksi, pratinjau, dan worker; selidiki periode paparan sebelumnya. |
| Panduan versi Next.js per cabang dalam pembaruan React 2026-01-26 | Panduan React yang lebih baru mencantumkan rilis keamanan lanjutan; ini bukan versi minimum yang pertama kali memperbaiki CVE-2025-66478. Advisori RSC terkait dan cabang yang didukung dapat mengubah target pembaruan. | Untuk advisori RSC terkait CVE-2025-55183, CVE-2025-55184, CVE-2025-67779, dan CVE-2026-23864, React mencantumkan versi perbaikan 19.0.4, 19.1.5, dan 19.2.4. Panduan Next.js tertanggal 2026-01-26 adalah: 14.2.35 untuk 13.3.x–14.x stabil; 15.0.8 untuk 15.0.x; 15.1.12 untuk 15.1.x; 15.2.9 untuk 15.2.x; 15.3.9 untuk 15.3.x; 15.4.11 untuk 15.4.x; 15.5.10 untuk 15.5.x; 16.0.11 untuk 16.0.x; dan 16.1.5 untuk 16.1.x. Ini panduan lanjutan untuk masalah terkait, bukan versi minimum Next.js yang memperbaiki CVE-2025-66478. Sebelum deployment, periksa advisori vendor terbaru dan cabang yang masih didukung. |
CVE-2026-23869 — penolakan layanan RSC (2026-04-08). | React menyatakan bahwa permintaan HTTP yang dibuat khusus ke endpoint Server Function dapat memakai CPU secara berlebihan hingga satu menit sebelum menghasilkan error yang dapat ditangani. Versi cabang paket react-server-dom-* yang terdampak mencakup hingga 19.0.4, 19.1.5, dan 19.2.4. | React mencantumkan 19.0.5, 19.1.6, dan 19.2.5 sebagai versi perbaikan masing-masing. |
CVE-2026-23870 — penolakan layanan RSC (2026-05-06). | React menyatakan bahwa permintaan HTTP yang dibuat khusus dapat menyebabkan exception kehabisan memori atau penggunaan CPU berlebihan. Versi cabang paket react-server-dom-* yang terdampak mencakup hingga 19.0.5, 19.1.6, dan 19.2.5. | React mencantumkan 19.0.6, 19.1.7, dan 19.2.6 sebagai versi perbaikan masing-masing. |
CVE-2026-44907 — penolakan layanan Server Functions (2026-07-21). | React menyatakan bahwa permintaan HTTP yang dibuat khusus dapat menyebabkan exception kehabisan memori atau penggunaan CPU berlebihan. Versi cabang paket react-server-dom-* yang terdampak mencakup hingga 19.0.7, 19.1.8, dan 19.2.7. | React mencantumkan 19.0.8, 19.1.9, dan 19.2.8 sebagai versi perbaikan masing-masing. |
Alur Serangan Langkah demi Langkah
Kode Sumber: Rentan vs Aman
Cuplikan patch upstream ini hanya mengembalikan export milik modul; ini tidak mereproduksi seluruh cacat decoder dan bukan perbaikan mandiri. Perbarui paket React Server Components atau framework yang terdampak.[2], [1]
Cuplikan sumber: Metode requireModule() pada klien Parcel React
export function requireModule<T>(metadata: ClientReference<T>): T {
const moduleExports = parcelRequire(metadata[ID /* module id */]);
return moduleExports[metadata[NAME]];
}
export function requireModule<T>(metadata: ClientReference<T>): T {
const moduleExports = parcelRequire(metadata[ID /* module id */]);
if (hasOwnProperty.call(moduleExports, metadata[NAME])) {
return moduleExports[metadata[NAME]];
}
return (undefined: any);
}
Daftar Periksa Penguatan Sistem Rekayasa
- ✓Periksa lockfile, image, dan bundle server.[1], [4]
- ✓Upgrade ke React RSC 19.0.1, 19.1.2, 19.2.1 atau lebih baru serta framework yang sudah diperbaiki. Untuk advisori RSC berikutnya, periksa matriks dan perbarui paket
react-server-dom-*yang benar-benar terselesaikan ke versi perbaikan terbaru yang sesuai; framework mungkin menyertakan paket tersebut.[1], [4], [8], [9], [10] - ✓Build dan deploy ulang; WAF bukan pengganti patch.[1]
- ✓Verifikasi versi yang benar-benar berjalan.[1]
- ✓Jika pernah terbuka tanpa patch, periksa proses dan koneksi lalu rotasi secret.[5], [6]
Sumber
- React Security Advisory — CVE-2025-55182
- React upstream patch — commit 7dc903c
- NVD — CVE-2025-55182, CWE-502 and KEV status
- Next.js Security Advisory — CVE-2025-66478
- Google Threat Intelligence — React2Shell exploitation
- CISA Known Exploited Vulnerabilities Catalog
- Advisori Keamanan React — kerentanan RSC tambahan
- Peringatan keamanan React — CVE-2026-23869 (DoS RSC)
- Peringatan keamanan React — CVE-2026-23870 (DoS RSC)
- Peringatan keamanan React — CVE-2026-44907 (DoS Server Functions)