
React2Shell: A New Threat to the Next.js Ecosystem
Have you heard about the React2Shell (CVE-2025-55182) vulnerability that has recently shaken the web development community? It is a Remote Code Execution (RCE) vulnerability that threatens countless websites using Next.js and React Server Components (RSC).
In this article, we will take a deep technical dive into what React2Shell is, why it's dangerous, and how we should respond.
1. What is React2Shell?
React2Shell exploits a security flaw in the serialization process of React Server Components (RSC). An attacker can execute arbitrary code on the server by sending a carefully crafted HTTP request.
Core Principle
React Server Components use a protocol called Flight to transmit data from the server to the client. During this process, the server deserializes data received from the client. If input validation is insufficient at this stage, an attacker can inject a malicious object to gain control of the server.
With a CVSS score of 10.0, it is rated at the highest level of danger, requiring immediate patching upon discovery.
2. Why is it Dangerous?
This vulnerability is particularly fatal because attacks are possible Unauthenticated. An attacker can take over a server with just a single HTTP request, without being logged in.
- Server Compromise: The attacker gains shell access to the server.
- Data Leak: Sensitive information such as database credentials and environment variables can be stolen.
- Service Disruption: The server can be taken down or used for malicious activities like crypto mining.
3. Mitigation and Patching
The most certain countermeasure is to update your libraries. Vercel (creators of Next.js) and the React team have rapidly deployed patches to resolve this issue.
Required Versions
- Next.js: 15.1.0 or later, or the latest Canary version
- React: 19.0.0-rc or later
If immediate updates are difficult, temporary measures such as disabling RSC-related features in next.config.js or blocking specific request patterns via WAF (Web Application Firewall) should be taken.
References
4. Security Implementation in ConverterGo
At ConverterGo, user safety is our top priority. As soon as the React2Shell vulnerability was disclosed, we took the following actions.
4.1 Applying the Latest Next.js Version
This blog is currently built on a secure version of Next.js 15.1.0+.
// package.json check
"dependencies": {
"next": "^15.1.3",
"react": "^19.0.0"
}
4.2 Enhanced Input Validation
All data input by users (address conversion, GPA calculation, etc.) is thoroughly validated on the server side. We use the zod library to immediately block any unexpected data formats.
4.3 Preventing Unnecessary Serialization
We strictly limit the data passed from React Server Components to the client to only necessary JSON data, preventing the serialization of unnecessary objects or functions at the source.
Security is not a one-time setup but a process requiring continuous attention and updates. Since critical vulnerabilities like React2Shell can occur at any time, it is crucial to always monitor the latest security trends and keep libraries up to date.
Security is an ongoing process. Let's work together to build a safer web.
