Zscaler Blog
Erhalten Sie die neuesten Zscaler Blog-Updates in Ihrem Posteingang
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
War dieser Beitrag nützlich?
Haftungsausschluss: Dieser Blog-Beitrag wurde von Zscaler ausschließlich zu Informationszwecken erstellt und wird ohne jegliche Garantie für Richtigkeit, Vollständigkeit oder Zuverlässigkeit zur Verfügung gestellt. Zscaler übernimmt keine Verantwortung für etwaige Fehler oder Auslassungen oder für Handlungen, die auf der Grundlage der bereitgestellten Informationen vorgenommen werden. Alle in diesem Blog-Beitrag verlinkten Websites oder Ressourcen Dritter werden nur zu Ihrer Information zur Verfügung gestellt, und Zscaler ist nicht für deren Inhalte oder Datenschutzmaßnahmen verantwortlich. Alle Inhalte können ohne vorherige Ankündigung geändert werden. Mit dem Zugriff auf diesen Blog-Beitrag erklären Sie sich mit diesen Bedingungen einverstanden und nehmen zur Kenntnis, dass es in Ihrer Verantwortung liegt, die Informationen zu überprüfen und in einer Ihren Bedürfnissen angemessenen Weise zu nutzen.
Erhalten Sie die neuesten Zscaler Blog-Updates in Ihrem Posteingang
Mit dem Absenden des Formulars stimmen Sie unserer Datenschutzrichtlinie zu.



