Back to Articles
high CVE-2025-55182 CVSS 8.2

HIGH: React2Shell and React Server Components Security Risks - Exploitation Paths Emerging

React2Shell refers to a newly disclosed set of exploitation paths affecting React Server Components and modern server-side rendering workflows. In vulnerable implementations, attackers may escalate from user-driven application behavior into sensitive server-side execution, data access, or compromise of backend services. Organizations using RSC or SSR patterns should audit server-executed components, reduce dynamic execution paths, and apply strict validation and least-privilege controls.

By Danny Dec 15, 2025 1 views
Affected Products
React Server Components (RSC) implementations in React-based SSR stacks - audit required Next.js and other React SSR frameworks using RSC patterns - audit required Custom Node.js SSR backends rendering or resolving components server-side - audit required Build and middleware pipelines that resolve modules dynamically at runtime - audit required

Executive Summary

A newly disclosed class of vulnerabilities, commonly referred to as React2Shell, has pushed a long-simmering concern into the spotlight: modern web frameworks are increasingly moving "frontend" logic onto the server. React2Shell is linked to React Server Components (RSC) and adjacent server-side rendering (SSR) patterns, where certain vulnerable implementations can allow attackers to turn what looks like harmless UI behavior into server-side impact, including exposure of secrets, unauthorized backend access, and in some cases an avenue toward remote code execution (RCE).

Unlike a single bug in a single library, React2Shell is best understood as an attack surface problem created by architecture. When applications render components on the server and resolve modules dynamically, the trust boundary expands. If untrusted inputs can influence how a server component is selected, how props are interpreted, or how modules are resolved, the server can end up doing work an attacker controls, and that is where exploitation paths emerge.

⚠️ IMMEDIATE ACTION REQUIRED - If you use React Server Components or SSR frameworks with server-driven UI execution, prioritize a security review now. Reduce dynamic module resolution where possible, lock down server execution paths, and apply patches and framework advisories as they become available.


Vulnerability Details

Attribute Value
CVE ID CVE-2025-55182 (and related)
CVSS Score 8.2 (HIGH)
CWE CWE-94: Improper Control of Code Generation (commonly associated risk)
Attack Vector Network
Attack Complexity Medium
Privileges Required None
User Interaction Sometimes Required
CISA KEV No (as of publication)
Exploitation Status Early exploitation activity reported and scanning observed

Technical Analysis

React Server Components allow portions of the component tree to execute on the server and stream results to the client. This approach improves performance and developer experience, but it also creates a powerful new reality: component resolution becomes a server-side activity. If an application design allows user-influenced data to affect what gets rendered, what modules load, or how server-side code paths are executed, a traditional web bug can become something far more serious.

React2Shell-style exploitation paths are often discussed in terms of combinations, not single triggers. Common risk patterns include:

  • Server components that accept loosely validated inputs and pass them into server-executed logic
  • Dynamic imports or module resolution influenced by request data, routing state, or untrusted props
  • Middleware and build tooling that resolves paths at runtime with insufficient constraints
  • Reliance on environment variables and secrets accessible to server-rendered code paths

Attackers may begin with a normal web entry point, then escalate by shaping inputs to reach privileged server-side execution contexts. When this works, the technical impact can include server-side request forgery (SSRF), data exposure, credential leakage, and in certain vulnerable patterns an eventual path toward RCE.

Key Points

  • React2Shell is largely an architectural risk category, not a single bug
  • The blending of frontend and backend execution expands the trust boundary
  • Vulnerable patterns often involve dynamic resolution and insufficient validation
  • The highest risk appears when user input can influence server-side module execution

Affected Products

React Ecosystem and SSR Stacks

  • React Server Components (RSC) implementations → Audit and apply framework guidance
  • Next.js or similar SSR frameworks using RSC patterns → Patch and reduce dynamic execution paths
  • Custom Node.js SSR backends → Threat model server rendering and lock down module resolution
  • Runtime build or middleware pipelines that resolve modules dynamically → Constrain and validate resolution paths

Not Affected

  • Pure client-side React applications with no server-side component execution
  • Static sites where rendering occurs only at build time and no dynamic server execution occurs per request (risk significantly reduced)

Indicators of Compromise (IOCs)

Public reporting does not provide a single authoritative IOC list that covers all React2Shell attempts. These issues are best monitored using behavior-based detections aligned to your architecture.

Malicious IPs and Domains

N/A - No consistent public IOC set at time of publication

File Hashes (SHA-256)

N/A - No consistent public IOC set at time of publication

Observed Attack Behavior

  1. Attacker probes SSR endpoints or routes that influence server rendering behavior.
  2. Attacker attempts to manipulate server-side component selection or module resolution inputs.
  3. Application executes unexpected server-side logic or accesses sensitive backend resources.
  4. Follow-on activity may include secret access, SSRF, credential theft, or payload staging.

Remediation

Immediate Actions

  1. Inventory RSC and SSR usage - Identify which applications use React Server Components, SSR, or server-driven component resolution.
  2. Audit server-executed components - Validate all inputs, especially anything that can influence routing, component selection, or module resolution.
  3. Reduce dynamic execution paths - Avoid user-influenced dynamic imports and constrain allowable modules and render paths.
  4. Harden runtime permissions - Apply least privilege to service accounts, limit filesystem access, and lock down egress where feasible.
  5. Improve monitoring - Add alerting for anomalous SSR routes, unexpected module loads, and unusual outbound requests from render nodes.

Workaround (if patching is delayed)

If you cannot update immediately, focus on containment:

  • Disable or restrict any feature that allows user-controlled component selection
  • Add strict allowlists for module resolution and import paths
  • Enforce schema validation on all server-rendered inputs
# Example control pattern (conceptual)
# Allowlist component identifiers and reject anything else before rendering
# componentId must be in a fixed server-side map, never used as a path or module name

Timeline

Date Event
2025-07-xx Researchers publish React2Shell and RSC vulnerability research and attack paths
2025-07-xx Early scanning and exploitation activity reported by defenders
2025-07-xx Framework and platform guidance begins to consolidate across the ecosystem

Tags

ReactReact Server ComponentsRSCReact2ShellServer-Side RenderingSSRRemote Code ExecutionRCESupply ChainCWE-94CVE-2025-55182