By NHI Mgmt Group Editorial TeamBased on StepSecurity: “Critical Remote Code Execution Vulnerabilities Discovered in React Server Components and Next.js” (December 3, 2025)

TL;DR: A newly disclosed unauthenticated remote code execution flaw in React Server Components and Next.js App Router can be triggered through crafted HTTP requests, with researchers reporting near 100% exploitation success and Wiz finding vulnerable versions in 39% of cloud environments and 44% with public exposure, according to StepSecurity. The practical lesson is that dependency trust, exposure management, and rapid patch validation now need to be treated as operational controls, not release hygiene.


At a glance

What this is: This analysis covers a critical unauthenticated RCE in React Server Components and Next.js App Router that turns trusted dependency handling into an execution-risk problem.

Why it matters: It matters because application teams must treat framework trust, exposure inventory, and rapid patch validation as security controls, not just engineering maintenance.

By the numbers:

  • According to Wiz research cited by StepSecurity, 39% of cloud environments contain instances of Next.js or React in vulnerable versions.
  • According to Wiz research cited by StepSecurity, 44% of all cloud environments have publicly exposed Next.js instances.
  • StepSecurity reports near 100% exploitation success rates in testing environments for the vulnerability.

Context

React Server Components extend the application trust boundary by letting structured client-server payloads influence server-side rendering and execution paths. When deserialization and input validation are weak, that boundary becomes a code execution path rather than a data exchange mechanism, which is why dependency trust needs the same scrutiny as runtime access control.

For identity and access teams, this is a reminder that software supply chain risk often reaches the same control plane as credentials and privilege. A vulnerable framework can become an execution primitive for attackers, so exposure inventory, patch validation, and runtime detection need to be aligned across engineering and security operations.


Key questions

Q: What should teams do first when a framework RCE flaw exposes server-side application code?

A: Start by identifying which workloads expose the vulnerable endpoint, then patch the affected framework versions and isolate any public assets that may already have been touched. If the vulnerable process held secrets or service credentials, rotate them as part of containment. The priority is to remove the reachable attack path before assuming the application is clean.

Q: Why do public web applications create extra risk when framework dependencies are vulnerable?

A: Because the real attack surface is the deployed application, not the source repository or framework name alone. Public hosting, edge delivery, and containerised runtimes can expose vulnerable endpoints even when teams believe the issue is localised. Security teams should prioritise assets that are externally reachable and confirm which dependency versions are actually running.

Q: Where do teams usually fail when remediating dependency-based RCE issues?

A: They often stop at the pull request or package upgrade and never confirm the patched version is actually running in production. That creates a false sense of closure. Teams should validate both the dependency tree and the deployed runtime, because indirect packages, cached builds, and embedded framework copies can keep the vulnerable code alive.

Q: How should security teams handle emergency patches that trigger supply-chain checks?

A: They should use a documented exception path that allows verified fixes to move quickly when the risk is already confirmed. Security controls should not block remediation because a reputation check is still catching up. The goal is to preserve scrutiny while avoiding delay on a known exploitable issue.


Technical breakdown

Insecure deserialization in React Server Components

React Server Components use a Flight protocol to move structured data between client and server. The risk appears when servers accept attacker-controlled payloads without sufficient validation, allowing deserialization logic to influence execution flow. That is not the same as a generic input bug: the server is parsing a protocol object that can alter how code runs. In practice, this makes framework-level message handling part of the attack surface, especially when application teams assume the framework boundary is already trusted.

Practical implication: validate framework payload handling as part of secure code review and patch the framework when protocol parsing becomes an execution path.

How publicly exposed Next.js instances increase exploitability

Public exposure matters because remote code execution only needs a reachable service and a vulnerable version, not prior access. When a framework instance is internet-facing, attackers can test exploitability at scale and automate delivery through crafted HTTP requests. That changes the risk model from latent vulnerability to active attack surface. For cloud teams, exposure management is therefore inseparable from software versioning: an unpatched public instance is materially different from an unpatched internal one.

Practical implication: inventory internet-facing instances first, then prioritise patching and temporary containment where exposed services cannot be upgraded immediately.

Why dependency trust fails without runtime verification

Modern application stacks inherit trust from package managers, frameworks, transitive dependencies, and deployment pipelines. The failure in this case is not simply that a package was vulnerable, but that organisations often treat a framework as safe until a release note says otherwise. That assumption breaks when exploitation is reliable and exposure is broad. Runtime verification, log monitoring, and build-time package scrutiny are needed because dependency trust is not a binary state; it is a continuous control problem.

Practical implication: pair upgrade workflow with runtime monitoring so vulnerable dependencies are detected and confirmed in production, not only in build pipelines.


Threat narrative

Attacker objective: The attacker’s objective is to execute arbitrary code on exposed application servers without authentication and use that foothold for broader compromise.

  1. Entry occurs through a specially crafted HTTP request sent to a vulnerable React Server Components or Next.js App Router endpoint.
  2. The malicious request abuses insecure deserialization in the Flight protocol, letting attacker-controlled data influence server-side execution logic.
  3. Successful execution yields unauthenticated remote code execution on the target application server, with potential for further compromise of the hosting environment.

Read and download The State of NHI & AI Agent Breach Report 2026, covering 200+ breaches impacting Non-Human Identities including AI Agents.


NHI Mgmt Group analysis

Dependency trust has become an execution-control problem. This vulnerability is not just a patchable bug in a framework release. It shows that modern application stacks inherit trust from deserialisation logic, transitive packages, and runtime exposure, so dependency governance now sits closer to application security than release management. Practitioners should treat framework trust as a monitored control boundary, not an assumption.

Public exposure turns framework flaws into immediate attack surface. The combination of internet-facing Next.js instances and high exploit reliability means exposure inventory is now as important as version inventory. A vulnerable package inside an internal-only service is one risk profile; the same package on a public endpoint is a different operational problem entirely. Security teams should prioritise exposed services first because they are the ones most likely to be tested at scale.

Rapid patching only works when validation is operationalised. Many teams can deploy fixes quickly, but fewer can prove that the patched version is actually in use across repositories, builds, and production clusters. That creates a gap between remediation intent and security outcome. The broader lesson is that patching is not complete until dependency discovery, deployment verification, and exploit monitoring all agree the exposure is gone.

Framework trust is a supply chain issue before it is a vulnerability issue. The article’s npm cooldown note shows a second-order challenge: security tooling may flag legitimate emergency patches as suspicious. That is a governance problem, not just a pipeline annoyance. Practitioners need clear exception handling for verified emergency fixes so controls do not block remediation when the risk is already known.

Remote code execution in application frameworks now deserves identity-adjacent scrutiny. Once an attacker can run code through a trusted dependency, the next steps often involve token theft, secret harvesting, or lateral movement through service credentials. That makes the boundary between application security and NHI governance more porous than many programmes assume. Teams should align framework patching with secret handling and workload access review.

What this signals

Dependency exposure has become a runtime governance issue. Organisations should no longer assume that package provenance alone is enough to control framework risk. When a trusted framework can be driven into code execution by crafted input, the control point shifts from who published the dependency to where and how it is deployed.

Exposed application surfaces deserve the same priority as privileged credentials. A public framework instance is an execution path, not just a hosting choice. That means cloud teams, application owners, and identity teams need a shared view of exposure, because the compromise path can quickly reach secrets, tokens, and service accounts.

Patch validation is the new proof of remediation. Upgrade notices are only the starting signal. Practitioners should confirm runtime version, confirm exposure reduction, and watch for exploit attempts before they declare the incident closed.


For practitioners

  • Inventory affected framework versions across repositories Search all codebases and build artifacts for the vulnerable React and Next.js versions, including indirect dependencies and embedded framework copies.
  • Prioritise internet-facing instances first Move externally exposed Next.js services to the front of the remediation queue, because reachable services are the most likely exploitation targets.
  • Verify remediation in production, not just in source control Confirm patched versions with package listings and deployment evidence so a fixed commit does not mask an unpatched runtime.
  • Monitor application logs for exploit attempts Add detections for suspicious request patterns and unexpected server-side execution behavior in applications using React Server Components.
  • Approve verified emergency patches through security controls Create a fast exception path for validated security releases when package reputation checks initially fail but the patch has been reviewed and confirmed safe.

Key takeaways

  • The core risk is not a generic software bug but a trusted framework path that can be turned into unauthenticated execution when input handling fails.
  • The article cites near 100% exploitation success in testing, and Wiz data shows the exposure is broad across cloud environments and public instances.
  • Teams need to treat exposure inventory, deployment verification, and log monitoring as part of the remediation itself, not as follow-up tasks.

Standards & Framework Alignment

This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.

MITRE ATT&CK and OWASP API Security Top 10 address the attack and risk surface, while CIS Controls v8, NIST CSF 2.0 and SLSA set the governance and control requirements practitioners need to meet.

FrameworkControl / ReferenceRelevance
MITRE ATT&CKTA0001; TA0006; TA0002 — Initial Access; Credential Access; ExecutionCrafted requests lead to unauthenticated execution through the vulnerable framework path.
Recommendation — Map the exploit path to these tactics and hunt for public endpoints accepting malicious RSC payloads.
CIS Controls v8CIS-4 — Secure Configuration of Enterprise Assets and SoftwareThe article centers on vulnerable framework versions remaining deployed across environments.
Recommendation — Enforce secure software configuration baselines and verify vulnerable framework versions are removed from production.
NIST CSF 2.0PR.DS-02 — Data-in-Transit Is ProtectedThe Flight protocol and crafted HTTP requests show how untrusted traffic can become an execution path.
Recommendation — Review protocol-handling controls and validate that untrusted request data cannot influence execution flow.
OWASP API Security Top 10API8 — Security MisconfigurationPublicly reachable app surfaces and weak framework handling create exploitable misconfiguration risk.
Recommendation — Audit exposed application endpoints for misconfiguration that allows attacker-controlled payloads to reach server logic.
SLSAL3 — Build integrityEmergency patch handling and dependency trust both depend on build provenance and release integrity.
Recommendation — Require provenance and integrity checks so emergency framework patches can be trusted and deployed quickly.

Key terms

  • Insecure deserialisation: Insecure deserialisation is a flaw where software rebuilds objects from incoming data without tightly controlling what can be instantiated. In platform software, it can turn a management interface into a code execution path when hostile payloads are accepted from a trusted channel.
  • Attack Surface Exposure Score: A metric that measures how much internet-exposed infrastructure is carrying unresolved critical findings. It is useful for executive reporting because it links reachability and severity, giving leadership a clearer view of breach-relevant risk than raw vulnerability counts alone.
  • Dependency Trust Amplification: The phenomenon where one compromised package or maintainer account creates disproportionate downstream impact because many projects reuse the same dependency. The risk rises with popularity, transitive reuse, and automated update workflows.
  • Runtime Verification: Runtime verification is the practice of checking what an identity is doing while it is active, rather than relying only on provisioning-time controls. For autonomous agents, it means monitoring prompts, tool use, outputs, and policy violations as actions unfold so harmful behavior can be contained early.

Deepen your knowledge

The NHI Foundation Level course, the industry's only accredited NHI security programme, covers NHI governance, secrets management, and workload identity in the context of modern security operations. It is designed for practitioners who need to connect identity controls to software supply chain and runtime risk.
NHIMG Editorial Note
Published by the NHIMG editorial team on August 19, 2026.
Updated on October 12, 2026.
NHI Mgmt Group, the independent authority on Non-Human Identity, IAM, and Agentic AI security. nhimg.org