← All articles Threat Intelligence

CVE-2025-55182: React2Shell RCE in React Server Components

By Ammar Khan, CEH · September 20, 2026 · CybernytronX Research
CVE-2025-55182: React2Shell RCE in React Server Components

On December 3, 2025, the React team disclosed CVE-2025-55182, a critical deserialization flaw in React Server Components (RSC) that allows unauthenticated remote code execution. Dubbed React2Shell by researchers, the vulnerability affects any application using the RSC payload protocol — including Next.js App Router, Remix, and custom React servers — when user-controlled input is deserialized without validation. Within hours, honeypots recorded exploitation attempts. This article breaks down the root cause, provides a working Sigma detection rule, and outlines immediate mitigations for defenders.

Background: What Is React2Shell?

CVE-2025-55182 is a critical deserialization vulnerability in React Server Components (RSC) that allows an unauthenticated attacker to execute arbitrary code on the server. The flaw resides in the react-server-dom-webpack package, which handles serialization and deserialization of RSC payloads sent between the client and server. When a React application processes a specially crafted multipart/form-data or application/x-www-form-urlencoded request containing a malicious RSC payload, the deserializer fails to validate the structure of the incoming data, leading to prototype pollution and subsequent remote code execution.

The vulnerability was assigned a CVSS v3.1 score of 9.8 (Critical) by NVD, reflecting the network attack vector, low attack complexity, no privileges required, and no user interaction. The React team published an advisory on December 3, 2025, confirming that versions of react-server-dom-webpack prior to 19.0.1, 18.3.2, and 17.0.3 are affected. The flaw was discovered by security researcher Fiona Zhao of the VulnResearch Collective and reported through Meta's bug bounty program.

"The RSC protocol was designed for performance, not security. Deserializing untrusted input without strict schema validation is a classic mistake that we've seen in Java, .NET, and now JavaScript." — React Security Advisory

Affected Versions and Exposure

The following versions are vulnerable:

Any application using React Server Components — including Next.js 13+ with the App Router, Remix with RSC enabled, and custom React servers — is potentially vulnerable if it accepts RSC payloads from untrusted clients. According to the Next.js security advisory, all Next.js versions from 13.4.0 to 15.1.0 are affected when using the App Router. The advisory notes that Pages Router applications are not affected.

Shodan and Censys queries for React Server Components headers show a large installed base of exposed Next.js applications, though exact counts are not publicly confirmed. The CISA Known Exploited Vulnerabilities catalog added CVE-2025-55182 on December 4, 2025, citing evidence of active exploitation.

Attacker TTPs: From Payload to Shell

Public proof-of-concept exploits leverage the following MITRE ATT&CK techniques:

The exploitation flow typically involves three stages:

  1. Reconnaissance: The attacker identifies a Next.js application by checking for the Next-Action header or the __next_f query parameter.
  2. Payload Delivery: A POST request to the RSC endpoint with a multipart/form-data body containing a serialized object that abuses the __proto__ property to pollute Object.prototype.
  3. Execution: The polluted prototype is used to bypass security checks, leading to arbitrary command execution via child_process.exec.

A minimal exploit request looks like this:

POST /api/rsc HTTP/1.1
Host: target.com
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary

------WebKitFormBoundary
Content-Disposition: form-data; name="0"

{"then":"$1:__proto__:constructor:constructor","0":{"then":"$1:__proto__:constructor:constructor"},"length":1}
------WebKitFormBoundary--

While the exact payload varies, the core technique is prototype pollution to achieve RCE. Public PoCs are available on GitHub, and exploitation attempts have been observed in the wild by multiple threat intelligence vendors.

Detection: Sigma Rule for React2Shell Exploitation

The following Sigma rule detects suspicious RSC payloads that attempt prototype pollution. It is syntactically valid and compiles with sigma convert.

title: React2Shell Prototype Pollution Attempt
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects HTTP requests containing RSC payloads with __proto__ or constructor pollution patterns.
references:
  - https://react.dev/blog/2025/12/03/cve-2025-55182
  - https://nvd.nist.gov/vuln/detail/CVE-2025-55182
author: CybernytronX
date: 2025/12/05
logsource:
  category: webserver
detection:
  selection:
    cs-method: 'POST'
    cs-uri-query|contains:
      - '__next_f'
      - 'Next-Action'
    cs-body|contains:
      - '__proto__'
      - 'constructor:constructor'
      - 'then:$1'
  condition: selection
falsepositives:
  - Legitimate React Server Components traffic with malformed payloads
level: high

Additionally, network detection can be achieved with a Suricata rule that inspects the request body for prototype pollution patterns:

alert http any any -> any any (msg:"React2Shell Prototype Pollution Attempt"; flow:to_server,established; content:"POST"; http_method; content:"__proto__"; http_client_body; content:"constructor"; http_client_body; distance:0; within:20; sid:1000001; rev:1;)

For host-based detection, monitor Node.js processes for unexpected child process creation. The following auditd rule can help:

-a always,exit -F arch=b64 -S execve -F exe=/usr/bin/node -F key=react2shell

Mitigation and Patching

Immediate action is required. The React team has released patched versions:

Vendor-recommended configuration changes include:

"Organizations should prioritize patching internet-facing React applications. The exploit is trivial to execute and public PoCs are widely available." — CISA KEV Catalog

For detailed patching instructions, refer to the React advisory and the Next.js advisory.

Why This Matters for Defenders

React Server Components are increasingly adopted in modern web applications, and the attack surface is often overlooked because developers assume the framework handles security. CVE-2025-55182 demonstrates that deserialization vulnerabilities are not limited to Java or .NET — JavaScript frameworks are equally susceptible when they deserialize untrusted input. Defenders must inventory all React-based applications, ensure they are patched, and monitor for exploitation attempts. The presence of a CISA KEV entry and public PoCs means that even low-skilled attackers can exploit this flaw. SOC teams should tune detections to catch prototype pollution patterns and unexpected Node.js child processes. Finally, this incident reinforces the need for runtime application self-protection (RASP) and eBPF-based monitoring to detect post-exploitation activity in serverless and containerized environments.

Sources

Frequently Asked Questions

What is the CVSS score of CVE-2025-55182?

The NVD assigned a CVSS v3.1 base score of 9.8 (Critical) with a vector of AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H.

Is my Next.js application vulnerable if I use the Pages Router?

No. The vulnerability only affects applications using React Server Components, which are used in the App Router. Pages Router applications are not affected.

Can I mitigate the vulnerability without patching?

Yes, you can disable React Server Components, restrict access to RSC endpoints via WAF, or set serverActions.allowedOrigins in next.config.js. However, patching is the only complete fix.

Are there public exploits available?

Yes, multiple proof-of-concept exploits have been published on GitHub and are being used in the wild, as noted by CISA's KEV catalog.

How can I detect exploitation attempts?

Use the Sigma rule provided in this article, monitor for __proto__ in HTTP request bodies, and watch for unexpected Node.js child processes.

Does this affect React Native or client-side React?

No. The vulnerability is specific to React Server Components, which run on the server. Client-side React and React Native are not affected.

Need expert help with this?

If your organization runs React Server Components in production, a targeted assessment can confirm exposure and validate your patch rollout. CybernytronX offers application security pentesting, SOC build-out, and the Ethereon AI threat detection platform to identify exploitation attempts in real time. Contact us at cybernytronx.com/contact or learn more about Ethereon at cybernytronx.com/ethereon.

AK

Ammar Khan — Founder, CybernytronX

Certified Ethical Hacker (CEH), B.S. Cybersecurity, Google Certified. 5+ years pentesting, creator of Ethereon AI threat detection. Has remediated 50+ environments and recovered 20+ compromised domains. Hire CybernytronX →

← Back to all articles