Blog de Zscaler
Reciba en su bandeja de entrada las últimas actualizaciones del blog de Zscaler
React2Shell: Remote Code Execution Vulnerability (CVE-2025-55182)
*Updated on December 15, 2025: Zscaler ThreatLabz updated this advisory because the original fix for CVE-2025-55182 was incomplete. While versions 19.0.1, 19.1.2, and 19.2.1 were originally considered safe, versions 19.0.2, 19.1.3, and 19.2.2 remain vulnerable. Additionally, two new vulnerabilities were disclosed that also require patching: CVE-2025-55184 and CVE-2025-55183. Please refer to the updated patched versions listed in the table below.
Introduction
On December 3, 2025, Meta and Vercel disclosed CVE-2025-55182, a critical vulnerability in React Server Components (RSC) with the maximum CVSS score of 10.0. This flaw allows unauthenticated remote code execution (RCE) on impacted servers. Dubbed React2Shell, this vulnerability exploits the Flight protocol used in RSC and can be triggered by a malicious HTTP POST request. Even applications with default React configurations are impacted.
Since this disclosure, over 4,100 exploitation attempts have been observed within the first two hours, including attacks by a China-based threat actor. Zscaler ThreatLabz recommends treating CVE-2025-55182 as a priority to prevent potential exploitation. Zscaler customers using Zscaler Deception technology had observed exploitation attempts within their perimeter-facing decoy applications, which enabled them to take immediate and proactive measures to mitigate this threat.
ANALYST NOTE: Initially, a second vulnerability (CVE-2025-66478) was assigned to Next.js, but it has since been rejected as a CVE due to being a duplicate of CVE-2025-55182 upon further review.
Recommendations
Administrators of applications built with React and Next.js are strongly urged to take the following actions:
- Update to the latest stable versions of React and the corresponding Next.js version.
- Verify dependency resolution by thoroughly reviewing
package-lock.jsonor yarn.lock to ensurereact-server-dom-*packages are updated to their patched version. And usenpm ci, or equivalent, commands to ensure reproducible builds with fixed versions. - After verifying dependencies, follow the steps below to rebuild and redeploy:
- Clear all caches:
npm cache clean --force. - Remove node_modules:
rm -rf node_modules. - Perform a clean install: Use
npm ci(preferred) ornpm install. - Rebuild the application completely.
- Deploy updates to all affected environments immediately.
- Clear all caches:
- Monitor for suspicious activity such as unexpected child processes spawned by Node.js, unauthorized shell commands, and anomalous outbound connections.
- Deploy runtime protections using Runtime Application Self-Protection (RASP) or Cloud Workload Protection Platforms (CWPP) solutions to detect and block unauthorized process execution.
- Enable Web Application Firewall (WAF) rules as a temporary measure while patching, but do not rely on them as a permanent solution.
- Conduct security audits of applications using React Server Components (RSC) to identify all impacted instances, prioritizing public-facing services.
- Implement process monitoring to trigger alerts for any spawning of shell processes (e.g.,
bash,sh,cmd.exe,powershell.exe) originating from the application runtime. - Scan for indicators of compromise such as web shells, modified files in application directories, and unusual network traffic patterns.
Affected Versions
React vulnerability (CVE-2025-55182)
CVE-2025-55182 impacts the following packages:
react-server-dom-webpackreact-server-dom-parcelreact-server-dom-turbopack
The table below lists the impacted versions of these React packages along with their respective patched versions.
Impacted version | Patched version |
|---|---|
19.0.0 | 19.0.3 |
19.1.0, 19.1.1 | 19.1.4 |
19.2.0 | 19.2.3 |
Table 1: Table of impacted react-server-dom* package versions and their corresponding patched versions.
Next.js
Next.js, a widely-used web development framework built on React, was initially reported as being impacted by the React2Shell vulnerability and assigned CVE-2025-66478. However, after further review, this CVE was rejected. Despite this, certain versions of Next.js were identified as being indirectly affected due to their use of React components that rely on the Flight protocol.
Stable versions of Next.js 13.x and 14.x, as well as Pages Router applications and the Edge Runtime, remain unaffected. The table below lists impacted Next.js versions and their corresponding fixed versions.
Impacted version | Patched version |
|---|---|
15.x | 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8 and 15.5.7 |
16.x | 16.0.7 |
14.3.0 - canary.77 and later releases | 14.3.0 - canary.88 |
Table 2: Impacted Next.js versions and their corresponding patched versions.
Additional disclosures
Following the React2Shell disclosure, increased community research into RSC surfaced two additional vulnerabilities that require patching: CVE-2025-55184 and CVE-2025-55183. Both of these vulnerabilities impact React version 19 and frameworks that use it, such as Next.js. Please note that neither CVE-2025-55184 nor CVE-2025-55183 allow for RCE.
Technical Analysis
CVE-2025-55182 was linked to the Flight protocol within RSC, a mechanism in React 19 responsible for handling data serialization and deserialization between the server and client. A server-side weakness in the deserialization process was discovered, allowing attackers to execute arbitrary JavaScript code on a React server by sending a crafted HTTP POST request, requiring no authentication. This exploit targets the server-side deserialization process in RSC, where serialized data within multipart/form-data is trusted without proper validation. By manipulating this data, attackers leverage prototype chain traversal to reference and execute exports outside the original object.
The figure below shows the attack flow for CVE-2025-55182.

Figure 1: Diagram illustrating the attack flow for CVE-2025-55182.
The root cause of CVE-2025-55182 is a flaw in the getOutlinedModel function, which is susceptible to a type of JavaScript security issue known as prototype chain exploitation.
Prototype chain exploitation occurs when attackers take advantage of how JavaScript objects inherit properties and methods from their prototypes. In this specific case, by crafting malicious input with keywords like __proto__, constructor, and prototype, attackers are able to execute arbitrary JavaScript code.
The patched version resolves this issue by ensuring that only properties belonging to the actual object are accessed. This is done by adding a safeguard using hasOwnProperty checks before property lookups.
The code below illustrates the vulnerable code in the getOutlinedModel function and the implemented patch.
Conclusion
CVE-2025-55182 poses a significant threat to organizations using React and, by extension, certain implementations of Next.js. Zscaler ThreatLabz strongly recommends that organizations prioritize applying patches immediately to mitigate risks associated with the React2Shell vulnerability.
Zscaler Coverage
The Zscaler ThreatLabz team has deployed protection for CVE-2025-55182.
Zscaler Private Access AppProtection
¿Este post ha sido útil?
Descargo de responsabilidad: Esta entrada de blog ha sido creada por Zscaler con fines únicamente informativos y se proporciona "tal cual" sin ninguna garantía de exactitud, integridad o fiabilidad. Zscaler no asume ninguna responsabilidad por cualquier error u omisión o por cualquier acción tomada en base a la información proporcionada. Cualquier sitio web de terceros o recursos vinculados en esta entrada del blog se proporcionan solo por conveniencia, y Zscaler no es responsable de su contenido o prácticas. Todo el contenido está sujeto a cambios sin previo aviso. Al acceder a este blog, usted acepta estos términos y reconoce su exclusiva responsabilidad de verificar y utilizar la información según convenga a sus necesidades.
Reciba en su bandeja de entrada las últimas actualizaciones del blog de Zscaler
Al enviar el formulario, acepta nuestra política de privacidad.



