CVE-2025-11953 — React Native Community CLI OS Command Injection Vulnerability

CVE-2025-11953

React Native CLI Metro Server — Pre-Auth OS Command Injection via /open-url Endpoint (Metro4Shell; ~2.5M Weekly Downloads)

What is React Native CLI and Metro?

React Native is Meta's framework for building mobile applications using JavaScript/TypeScript that run natively on iOS and Android. The @react-native-community/cli package provides the command-line interface for React Native development, including the Metro bundler — a development server that bundles JavaScript code for device/simulator testing. Metro runs as an HTTP server (default port 8081) and by default binds to all network interfaces (0.0.0.0), not just localhost. During development, Metro is intentionally internet-accessible in some setups. The React Native CLI has approximately 2.5 million weekly npm downloads.

Overview

CVE-2025-11953 (nicknamed Metro4Shell by SOCRadar) is a critical OS command injection vulnerability (CWE-78, CVSS 9.8) in the React Native Community CLI's Metro development server. The /open-url POST endpoint accepts a URL parameter that is passed directly to the npm open package, which invokes a system shell command without sanitization. An unauthenticated attacker can send a crafted POST request to /open-url and execute arbitrary OS commands on the host running Metro — on Windows, arbitrary shell commands with fully controlled arguments are also possible. Because Metro binds to all network interfaces by default, it may be reachable from the network or internet in development and CI/CD environments. CISA added the CVE to the KEV catalog in February 2026 after VulnCheck documented active exploitation campaigns beginning December 2025.

Affected Versions

Package Vulnerable Fixed
@react-native-community/cli v1.0.0 through v20.0.1 v20.0.2
@react-native-community/cli-server-api All versions before fix v20.0.0+ (fix in server-api package)

Technical Details

The vulnerability (CWE-78: OS Command Injection) is in Metro's /open-url HTTP endpoint, part of the @react-native-community/cli-server-api package. When a POST request is received at /open-url, the url parameter from the request body is passed directly to the open() function from the npm open package without validation or sanitization. The open package invokes a system shell command to "open" the URL using the platform's default handler:

  • Linux/macOS: xdg-open <url> or open <url> — shell metacharacters in the URL enable command injection
  • Windows: Invokes cmd.exe /c start <url> — the start command with shell-interpreted arguments allows arbitrary shell command execution with fully controlled arguments

Key exposure factor: Metro binds to 0.0.0.0 by default — all network interfaces — meaning it is accessible from any host on the local network, and potentially from the internet if not firewalled. Production deployments, CI/CD pipelines, cloud development environments, and developer machines without firewall restrictions are all potentially vulnerable.

Mitigation without patching: Start Metro with --host 127.0.0.1 to bind only to localhost: npx react-native start --host 127.0.0.1

Discovery

Discovered by JFrog Security Research, who disclosed in early November 2025.

Exploitation Context

VulnCheck's Canary network detected active exploitation beginning December 21, 2025 — approximately 7 weeks after CVE publication. Three exploitation waves were observed (Dec 21, Jan 4, Jan 21). Attackers deployed multi-stage attack chains:

  1. POST to /open-url with injected command
  2. Execute multi-stage PowerShell loader via cmd.exe
  3. Disable Microsoft Defender before payload retrieval
  4. Fetch and execute a Rust-based binary with anti-analysis features

Attack infrastructure:

  • C2 source IPs: 65.109.182.231, 223.6.249.141, 134.209.69.155
  • Payload hosting: 8.218.43.248:60124, 47.86.33.195:60130

CISA added CVE-2025-11953 to the KEV catalog on February 5, 2026 — approximately 3 months after CVE publication. The delay reflects that CISA's catalog primarily tracks exploitation against government-relevant infrastructure; VulnCheck's January 2026 exploitation data likely triggered the KEV addition. The vulnerability is particularly impactful because Metro is present in virtually every React Native development environment and CI/CD pipeline, and developers rarely consider their local/CI development servers as attack surfaces requiring security updates.

Remediation

  1. Upgrade @react-native-community/cli to v20.0.2 or later: npm install --save-dev @react-native-community/cli@latest or yarn add --dev @react-native-community/cli@latest.
  2. Immediately apply network binding mitigation: add --host 127.0.0.1 to all Metro start commands to prevent exposure beyond localhost: npx react-native start --host 127.0.0.1. Add this to package.json scripts.
  3. Firewall Metro's port (default 8081) at the OS and network level to deny external access — Metro should never be reachable from untrusted networks.
  4. Audit CI/CD pipelines: if React Native builds run in CI/CD environments (GitHub Actions, Jenkins, etc.), ensure Metro is not running with network-accessible bindings during pipeline execution.
  5. Block attacker infrastructure in network egress rules: 8.218.43.248, 47.86.33.195, 65.109.182.231, 223.6.249.141, 134.209.69.155.
  6. Do not run Metro in production: Metro is a development bundler and should never be deployed to production servers. If you see Metro processes on production hosts, treat it as an incident.

Key Details

PropertyValue
CVE ID CVE-2025-11953
Vendor / Product React Native Community — CLI
NVD Published2025-11-03
NVD Last Modified2026-02-06
CVSS 3.1 Score9.8
CVSS 3.1 VectorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
SeverityCRITICAL
CWE CWE-78 find similar ↗
CISA KEV Added2026-02-05
CISA KEV Deadline2026-02-26
Known Ransomware Use No

CVSS 3.1 Breakdown

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Required Action

CISA BOD 22-01 Deadline: 2026-02-26. Apply mitigations per vendor instructions, follow applicable BOD 22-01 guidance for cloud services, or discontinue use of the product if mitigations are unavailable.

Timeline

DateEvent
2025-11-03CVE published; @react-native-community/cli v20.0.2 released with the fix
2025-12-21VulnCheck Canary network detects active exploitation wave; attackers deploy PowerShell loaders and Rust-based malware
2026-01-04Second exploitation wave observed (VulnCheck)
2026-01-21Third exploitation wave observed
2026-02-05CISA adds to Known Exploited Vulnerabilities catalog
2026-02-26CISA BOD 22-01 remediation deadline