CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-42342

CVE-2026-42342: Uncontrolled Resource Consumption and Denial of Service in React Router and Remix

Amit Schendel
Amit Schendel
Senior Security Researcher

Jun 3, 2026·6 min read·4 visits

Executive Summary (TL;DR)

A high-severity Denial of Service vulnerability in React Router (v7 Framework Mode) and Remix (v2) allows unauthenticated remote attackers to exhaust server resources and freeze the Node.js event loop via unbounded path expansion requests to the manifest resolution engine. Upgrade to react-router v7.15.0 or @remix-run/server-runtime v2.17.5 to resolve.

An Uncontrolled Resource Consumption vulnerability (CWE-400) affects React Router in Framework Mode and Remix server runtimes. A remote, unauthenticated attacker can trigger unbounded recursive path expansion in the manifest resolution component, leading to 100% CPU exhaustion and complete Denial of Service. The vulnerability arises because the server does not enforce depth limits when parsing deeply nested path segments in requests directed to the dynamic manifest evaluation endpoints. This blocks the single-threaded Node.js event loop, preventing the processing of subsequent client requests. The issue is resolved in react-router v7.15.0 and @remix-run/server-runtime v2.17.5. Applications using React Router in client-side-only Declarative or Data modes are unaffected.

Vulnerability Overview

React Router Framework Mode and Remix architectures integrate server-side routing engines to optimize dynamic web application client experiences. During build initialization, the compiler builds a hierarchical route manifest tracking dependencies, assets, and route parameters. The server exposes the internal __manifest endpoint to dynamically serve portions of this structural mapping to the browser runtime during page transitions. This architecture requires parsing and resolving incoming request paths sequentially against the defined layout hierarchy.\n\nThe vulnerability designated as CVE-2026-42342 lies within this manifest-resolution process in @remix-run/server-runtime and the react-router Framework Mode packages. The parsing component fails to enforce boundaries on the input parameters of incoming path-expansion requests. This flaw is classified as CWE-400 (Uncontrolled Resource Consumption), enabling a remote, unauthenticated attacker to exhaust critical server assets.\n\nBecause the resolution component executes synchronously within the main execution thread, the application is highly vulnerable to denial of service. Standard configurations exposing this endpoint directly to the internet allow external actors to execute targets. This analysis details the underlying failure logic, exploitation mechanics, and validation remediations necessary to secure the application layers.

Root Cause Analysis

The root cause of CVE-2026-42342 is located in the route-matching and dynamic-expansion function inside @remix-run/server-runtime. When a user requests assets via the __manifest endpoint, the system extracts the path segments from the URL structure. It then maps these elements recursively against the configured routing hierarchy to build a dynamic subset of application requirements.\n\nIn vulnerable configurations, this matching mechanism iterates over each dynamic directory segment using a nested, recursive algorithm. The path resolution implementation lacks an explicit depth limitation or iteration ceiling. When processing an input path containing thousands of nested parameters, the execution cycle descends recursively without bounds.\n\nThe algorithmic complexity of this matching pattern scales non-linearly with the number of path segments, resulting in high-density processing overhead. Because the evaluation logic runs entirely inside the single-threaded Node.js environment, the synchronous recursion starves the event loop. The thread remains locked in memory and execution loops, completely preventing context switching to resolve adjacent network packets.

Code Analysis

To illustrate the vulnerability, we examine the logic that performs dynamic route matching. The vulnerable code pattern recursively steps through routing directories without a defined depth boundary or parameter constraint count:\n\ntypescript\n// Vulnerable Path Expansion Implementation\nfunction expandRouteManifest(segments: string[], currentTree: RouteNode): RouteManifest {\n // No upper-boundary check or maximum recursion limit exists here\n const segment = segments[0];\n if (!segment || segments.length === 0) {\n return buildRouteMap(currentTree);\n }\n\n const matchedNode = findMatchingNode(segment, currentTree.children);\n if (matchedNode) {\n // Recursive call continues processing next segment without stack limit validation\n return expandRouteManifest(segments.slice(1), matchedNode);\n }\n return {};\n}\n\n\nThe remediation implements strict array validation and limits the maximum recursion depth allowed during manifest requests. The patched implementation enforces safe resource parameters to terminate execution before stack overflow or event loop starvation occurs:\n\ntypescript\n// Patched Path Expansion Implementation\nconst MAX_PATH_DEPTH = 32; // Enforces strict boundary limit on nested segments\n\nfunction expandRouteManifestSafe(segments: string[], currentTree: RouteNode, depth = 0): RouteManifest {\n // Patched: Check to prevent deep path traversal and eventual thread starvation\n if (depth > MAX_PATH_DEPTH) {\n throw new Error(\"Path depth limit exceeded: execution terminated\");\n }\n \n const segment = segments[0];\n if (!segment || segments.length === 0) {\n return buildRouteMap(currentTree);\n }\n\n const matchedNode = findMatchingNode(segment, currentTree.children);\n if (matchedNode) {\n // Patched: Tracks and increments depth parameters safely\n return expandRouteManifestSafe(segments.slice(1), matchedNode, depth + 1);\n }\n return {};\n}\n\n\nmermaid\ngraph LR\n A[\"Attacker Payload\"] --> B[\"__manifest Endpoint\"]\n B --> C[\"Path Split & Expansion Engine\"]\n C --> D[\"Recursive Route Tree Traversal\"]\n D --> E[\"Single Event Loop Blocked\"]\n E --> F[\"Full Application Outage\"]\n

Exploitation Methodology

Exploitation of CVE-2026-42342 requires zero authentication and basic toolsets. The attack takes advantage of the exposed nature of the application manifest system, which is open by design to facilitate client route state management. An attacker must identify an active React Router v7 or Remix v2 framework application deployment.\n\nThe attack relies on sending a crafted HTTP request with a high count of path segments. By appending thousands of repeating sub-directories to the path targeting the manifest evaluation routine, the attacker forces the engine into loop exhaustion. A simple curl utility command demonstrates this behavior in target testing environments.\n\nUpon receiving the packet, the server runtime locks up immediately as the event loop struggles to execute the recursive matching tree. System monitors show immediate 100% CPU capacity utilization on the active process. Legitimately routed traffic fails to negotiate TCP connection hands, producing timeout errors at the client tier.

Impact Assessment

The security impact of this vulnerability is characterized as high-severity denial of service. The CVSS score of 7.5 highlights the potential for complete resource starvation with minimal execution complexity. No confidential data is disclosed, and database state integrity remains unmodified, keeping the Confidentiality and Integrity metrics at None.\n\nThe architectural footprint of Node.js increases the impact of CWE-400. Unlike multi-threaded runtimes that spin up separate threads to manage concurrent connections, Node.js relies on asynchronous task resolution on a single main thread. A single CPU-bound blocker within the path traversal loop prevents all pending database interactions, HTTP handshakes, and asset routing resolutions from completing.\n\nThis total interruption of service results in operational downtime. For commercial platforms, an active exploitation attempt degrades application performance, inducing transactions failures and triggering load-balancer health-check dropouts. The operational severity remains significant until process-level reboots or service restarts are executed.

Remediation and Mitigations

The primary remediation strategy requires upgrading the core npm packages to versions where recursion safety boundaries are implemented. Applications utilizing React Router v7 should migrate immediately to version 7.15.0 or higher. Applications built on Remix v2 should update the @remix-run/server-runtime to version 2.17.5 or higher.\n\nWhen immediate library upgrades are prevented by software release cycles, edge-level mitigations must be configured. Web Application Firewalls (WAF) should be updated to drop incoming requests with high path segment counts. Rules blocking requests that contain more than eight path boundaries inside manifest-bound queries prevent resource saturation.\n\nFurthermore, reverse proxy servers like Nginx or HAProxy can enforce URI length and segment limitation rules to reject malicious patterns before reaching node runtimes. Security teams should execute automated scanning using target testing signatures to verify mitigation efficacy. Enforcing these combined boundary limits reduces exposure and maintains service reliability.

Official Patches

Remix/React RouterOfficial security advisory containing vulnerability and patching coordinates.

Technical Appendix

CVSS Score
7.5/ 10
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
EPSS Probability
0.05%
Top 84% most exploited

Affected Systems

React Router Framework Mode applicationsRemix server-side web applications

Affected Versions Detail

Product
Affected Versions
Fixed Version
react-router
Remix
>= 7.0.0, < 7.15.07.15.0
@remix-run/server-runtime
Remix
>= 2.10.0, < 2.17.52.17.5
AttributeDetail
CWE IDCWE-400
Attack VectorNetwork (AV:N)
CVSS Score7.5
EPSS Score0.00051 (16.30% percentile)
Exploit StatusTheoretical / Proof of Concept Only
CISA KEV StatusNot Listed
ImpactDenial of Service (DoS) via CPU Exhaustion

MITRE ATT&CK Mapping

T1499Endpoint Denial of Service
Impact
CWE-400
Uncontrolled Resource Consumption

The software does not properly control the allocation and maintenance of a limited resource, thereby enabling an actor to influence the amount of resources consumed, leading to exhaustion.

Vulnerability Timeline

Vulnerability details and CVE-2026-42342 published
2026-06-02
GitHub Security Advisory GHSA-8x6r-g9mw-2r78 released
2026-06-02
Vulnerability cataloged by OSV with SemVer configurations
2026-06-03

References & Sources

  • [1]GitHub Security Advisory GHSA-8x6r-g9mw-2r78
  • [2]NVD - CVE-2026-42342 Detail
  • [3]React Router GitHub Repository
  • [4]CVE-2026-42342 on CVE.org

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•27 minutes ago•CVE-2026-49143
8.8

CVE-2026-49143: Unauthenticated Remote Code Execution in browserstack-runner

An unauthenticated remote code execution (RCE) vulnerability exists in the browserstack-runner npm package (versions up to and including 0.9.5). The flaw lies in the /_log HTTP endpoint handler, which evaluates user-supplied input within a non-secure Node.js VM context combined with dynamic eval() execution. Network-adjacent attackers can exploit this behavior to escape the sandbox and execute arbitrary system commands on the host machine.

Alon Barad
Alon Barad
1 views•6 min read
•about 1 hour ago•GHSA-F9RX-7WF7-JR36
8.1

GHSA-F9RX-7WF7-JR36: Two-Factor Authentication Bypass and Passwordless API Key Creation in Froxlor

An architectural flaw in the Froxlor server administration control panel allows attackers to completely bypass Two-Factor Authentication (2FA) by issuing commands directly through the API. The API authentication routine in 'FroxlorRPC::validateAuth' fails to check the account's 2FA status, enabling arbitrary execution of administrative and customer actions. Furthermore, in versions prior to 2.3.7, API keys could be created without validating the current user password, exposing users to persistent backdoor access via session hijacking or CSRF.

Alon Barad
Alon Barad
0 views•5 min read
•about 2 hours ago•CVE-2026-40181
6.6

CVE-2026-40181: Open Redirect Vulnerability in React Router

An open redirect vulnerability exists in the react-router library due to insufficient validation of double-slash prefix paths in the redirect programmatic navigation helper. Attackers can leverage this to bypass standard destination validation checks and redirect users to malicious domains. This occurs because browsers interpret double-slash URLs as protocol-relative targets rather than relative application paths.

Amit Schendel
Amit Schendel
5 views•7 min read
•about 2 hours ago•CVE-2022-31114
5.1

CVE-2022-31114: Reflected Cross-Site Scripting in Laravel Backpack Error Views

CVE-2022-31114 is a Reflected Cross-Site Scripting (XSS) vulnerability affecting the popular administrative panel package 'backpack/crud'. The flaw is rooted in the unsafe, raw rendering of PHP exception messages within the default error templates. When an unescaped exception message reflects malicious user-provided input, arbitrary JavaScript can execute within an administrator's browser session.

Alon Barad
Alon Barad
6 views•6 min read
•about 4 hours ago•CVE-2024-52011
7.5

CVE-2024-52011: Remote Command Injection in ViteJS launch-editor

CVE-2024-52011 is a critical command injection vulnerability in the ViteJS launch-editor utility (versions prior to 2.9.0) affecting Windows environments. Unsanitized command-line arguments can lead to remote code execution on a developer workstation via cross-origin requests targeting the local development server.

Amit Schendel
Amit Schendel
3 views•7 min read
•about 10 hours ago•CVE-2025-10230
10.0

CVE-2025-10230: Samba Active Directory Domain Controller WINS Server Hook Command Injection

A critical OS command injection vulnerability exists in Samba's Windows Internet Name Service (WINS) server implementation when configured to run as an Active Directory Domain Controller (AD DC). Unsanitized NetBIOS name data extracted from WINS registration packets is directly concatenated into a shell command invocation and executed via Samba's wins hook parameter.

Amit Schendel
Amit Schendel
6 views•6 min read