Skip to content

CVE-2025-55182: 'React2Shell' — Pre-Auth Deserialization RCE in Meta React Server Components

HERMES

HERMES THREAT SCORE & CLOUD/FRONTEND EXPOSURE

Target: Meta React Server Components 19.0.0 / 19.1.x / 19.2.0 (react-server-dom-*)
Confidence: 99%
99 / 100
CRITICAL

Measures real-world operational relevance, exploit weaponization, and active threat posture.

Dimension Breakdown
Exploitability 20 / 20
Threat Activity 20 / 20
Weaponization 20 / 20
Exposure 20 / 20
Prevalence 20 / 20
Impact 20 / 20
Exploit Maturity 20 / 20
Attack Chain Potential 20 / 20
⚖️ Divergence & Operational Rationale

Hermes assesses CVE-2025-55182 at the absolute maximum HTS of 99 (CRITICAL SEVERITY). Dubbed 'React2Shell', this pre-authentication deserialization flaw in the React Flight protocol decoder (react-server-dom-webpack / turbopack / parcel) allows any unauthenticated attacker to execute arbitrary Node.js commands via a single HTTP POST request to a Server Function endpoint.

🕸️ Connected Knowledge Graph & Provenance

CVE-2025-55182:VULNERABILITY

Connected Nodes: 3
Active Relationships (Outgoing)
→ affectsPRODUCTMicrosoft Office & 365 Apps
98% VERY_HIGH

Software platform affected by security vulnerabilities and agentic attack patterns.

🔍 Why is this related? (Evidence & Provenance)

“Confirmed security vulnerability in Microsoft Office & 365 Apps documented in Hermes dossier.”

Supporting Verified Evidence:
→ usesATTACK TECHNIQUET1059: Command and Scripting Interpreter
90% VERY_HIGH

Adversaries abuse command and script interpreters (Bash, Python, PowerShell) to execute arbitrary commands.

🔍 Why is this related? (Evidence & Provenance)

“Attack execution telemetry aligns with MITRE ATT&CK technique T1059.”

Supporting Verified Evidence:
→ usesATTACK TECHNIQUET1552: Unsecured Credentials
90% VERY_HIGH

Adversaries search compromise victims for unsecured credentials in files, environment variables, or memory.

🔍 Why is this related? (Evidence & Provenance)

“Attack execution telemetry aligns with MITRE ATT&CK technique T1552.”

Supporting Verified Evidence:
ParameterTechnical SpecificationOperational Impact
CVE IdentifierCVE-2025-55182Official NVD / MITRE record
Common NameReact2ShellUniversal unauthenticated RCE on React Server Components
Associated CWECWE-502: Deserialization of Untrusted DataInsecure deserialization in React Flight protocol decoder
CVSS v3.1 Score10.0 CRITICALCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
CVSS v4.0 Score9.9 CRITICALCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
Applicable CPEscpe:2.3:a:meta:react:19.0.0:*:*:*:*:*:*:*
cpe:2.3:a:meta:react-server-dom-webpack:*:*:*:*:*:*:*:*
Frameworks and web applications using React 19 Server Actions
Affected Versions19.0.0, 19.1.0, 19.1.1, 19.2.0 (react-server-dom-webpack, turbopack, parcel)Any Node.js / Next.js / Remix server exposing Server Functions
Fixed Versions19.0.1, 19.1.2, 19.2.1 (December 2025)Emergency security patches released by Meta / React team

  • CISA KEV: Added on December 5, 2025; mandatory federal deadline December 12, 2025 (ransomware = Known).
  • EPSS Score: 0.99802 (Percentile: 99.957% — top-tier exploit weaponization).
  • Operational Status: Confirmed mass in-the-wild exploitation documented by AWS Security, Datadog, and Vercel.
  • PoC & Weaponization: Weaponized public exploits submitting HTTP POST requests with crafted Flight payloads triggering prototype pollution to execute child_process.exec.
  • Access Conditions: Pre-authentication; public network access via HTTPS (port 443 or 3000); trivial attack complexity.

  • Threat Actors: China-nexus cyber espionage groups (Linen Typhoon, Volt Typhoon) and cloud extortion gangs.
  • Observed Campaigns: Wide-scale scanning of modern web applications to harvest cloud IAM instance metadata credentials (IMDS).
  • Associated Malware: In-memory Node.js implants, crypto-miners, and WebSocket reverse shells.
  • Exploitation Timeline: Advisory published on December 3, 2025; mass internet scanning observed within hours of publication.

  • Malformed Flight Requests: POST requests with Next-Action or rsc headers containing prototype pollution payloads (__proto__, constructor, $1:I[...]).
  • Node.js Child Process Spawns: Node server processes spawning system command interpreters (/bin/sh, /bin/bash, powershell.exe).
title: Command Execution from Node.js React Server Process (CVE-2025-55182)
id: c3b2a198-5518-4a12-b012-3456789abcde
status: test
description: Detects suspicious child processes spawned by Node.js web servers running React Server Components
references:
- https://react.dev/blog/2025/12/03/critical-security-vulnerability-in-react-server-components
- https://aws.amazon.com/blogs/security/china-nexus-cyber-threat-groups-rapidly-exploit-react2shell-vulnerability-cve-2025-55182/
author: Hermes Codex Research
date: 2026-09-10
logsource:
category: process_creation
product: linux
detection:
selection:
ParentProcessName|endswith:
- '/node'
- '/next-server'
Image|endswith:
- '/sh'
- '/bash'
- '/curl'
- '/wget'
- '/python'
condition: selection
falsepositives:
- Legitimate build or CI/CD deployment pipelines on dev instances
level: critical
rule Exploit_React2Shell_Flight_Payload_CVE_2025_55182 {
meta:
description = "Detects React Flight exploit payloads targeting React2Shell"
author = "Hermes Codex Research"
date = "2026-09-10"
reference = "CVE-2025-55182"
strings:
$header_action = "Next-Action:" ascii nocase
$flight_hdr = "text/x-component" ascii
$payload_gadget = /\{\s*"?[0-9a-zA-Z_]+"?\s*:\s*"\$I[0-9a-zA-Z_]+"/ ascii
$proto_pollute = "__proto__" ascii
condition:
($header_action or $flight_hdr) and ($payload_gadget or $proto_pollute)
}
alert http $EXTERNAL_NET any -> $WEB_SERVERS any (msg:"HERMES - Meta React Server Components React2Shell Deserialization Exploit (CVE-2025-55182)"; flow:to_server,established; content:"POST"; http_method; content:"Next-Action"; http_header; pcre:"/(__proto__|constructor|\$I[a-zA-Z0-9_]+)/P"; classtype:web-application-attack; sid:202555182; rev:1;)
  • HTTP / CDN Access Logs: Monitor POST requests to Server Action endpoints yielding high rates of 500 errors or long durations.
  • Environment Secrets Audit: Check if AWS keys (AWS_SECRET_ACCESS_KEY), database passwords, or third-party API tokens were exfiltrated.
  • MITRE ATT&CK: T1190 (Exploit Public-Facing Application), T1059.007 (JavaScript), T1078.004 (Cloud Accounts), T1552.005 (Cloud Instance Metadata API).

  1. Upgrade npm Dependencies Immediately: Update react, react-dom, and react-server-dom-* packages to 19.0.1, 19.1.2, or 19.2.1.
  2. Patch Frameworks: Apply framework updates for Next.js, Remix, or run npx fix-react2shell-next.
  3. Rebuild and Redeploy Containers: Completely recompile application assets and replace running Kubernetes pods.
  4. Immediate Secret Rotation: Revoke and re-issue all environment secrets, cloud credentials, database URLs, and API tokens.
  5. Enforce IMDSv2: Require IMDSv2 on all cloud instances with Hop Limit = 1 to prevent IAM role theft from compromised containers.

”What happens if this vulnerability is exploited in an enterprise?”

Section titled “”What happens if this vulnerability is exploited in an enterprise?””
  1. Initial Cloud Exposure: The attacker discovers an enterprise web application running React 19 and Next.js hosted on AWS or Vercel.
  2. Delivering React2Shell Payload: The adversary sends a single HTTP POST request carrying a weaponized Flight payload to a Server Function endpoint.
  3. Node.js Container Takeover: Unsafe object instantiation triggers arbitrary shell command execution via Node’s child_process.exec(), granting shell access inside the running container.
  4. Cloud Metadata and Secrets Scraping: The attacker queries the AWS Instance Metadata Service (IMDS) to extract IAM instance credentials while reading environment variables containing production database strings.
  5. Full Cloud Account Takeover: Utilizing the harvested IAM credentials, the attacker exfiltrates customer databases from Amazon S3, deletes automated backups, and compromises the organization’s entire cloud footprint.