TL;DR: React Server Components in react-server-dom-parcel, react-server-dom-turbopack, and react-server-dom-webpack were affected by CVE-2025-55183 and CVE-2025-55184, adding source code exposure and denial-of-service risk after React2Shell, according to Semgrep. Patch reach is uneven because exploitation depends on specific server-component patterns, making dependency review and fix propagation the real control point.
At a glance
What this is: Semgrep reports that two later React Server Components vulnerabilities can cause source code exposure or denial of service, but only in specific server-component configurations.
Why it matters: This matters because teams that fixed React2Shell may still have residual exposure in nested dependencies, and code-disclosure bugs can surface embedded secrets as an identity and secrets governance problem.
Context
React Server Components change where code executes and how data flows between server and client boundaries, which means a vulnerability can affect both availability and confidentiality without looking like a classic application bug. In this case, the security gap is not only the flaw itself but the assumption that one patched package version closes the entire exposure path across related runtimes and frameworks.
For identity and secrets practitioners, source code disclosure matters because secrets frequently live in code, configuration, and inline server logic. Even when the exploit conditions are narrow, any leak path that exposes embedded credentials, tokens, or connection strings turns an application flaw into a credential governance issue.
The article’s starting position is typical for modern JavaScript ecosystems: dependencies are shared, patching is uneven, and downstream frameworks inherit the risk surface rather than removing it.
Key questions
Q: What should teams do first when a React Server Components flaw affects only some deployments?
A: Start with package-level inventory, because the risk depends on exact React Server Components and Next.js versions rather than the headline framework name. Then verify which applications actually use the affected server-component path, confirm fixed versions in each build artifact, and prioritise internet-facing or authenticated request paths for remediation.
Q: Why can a source-code disclosure bug matter even when the exploit conditions are narrow?
A: Because even a partial leak can expose inline secrets, connection strings, or operational details that attackers can use to pivot. Narrow exploitability does not remove the confidentiality risk if the affected component sits near sensitive server logic. The governance question is whether secrets are already embedded where a disclosure bug can reach them.
Q: How do teams know whether they have fully closed a framework vulnerability chain?
A: They should verify closure by dependency path, not by a single patched version at the top of the stack. If react-server-dom-* packages or a dependent framework such as Next.js remain on vulnerable releases, the exposure is still present. Effective closure means every build artifact and deployment path resolves to the fixed versions.
A: Patching React fixes the core vulnerable implementation, but frameworks and plugins that bundle or embed that code also need their own patched releases. If teams update only the base library, downstream packages can still reintroduce the affected path. Effective remediation therefore requires version alignment across the framework, bundler, and any RSC-enabled plugin.
Technical breakdown
Why React Server Components expand the attack surface
React Server Components split rendering and execution across server and client contexts. That boundary creates a distinct security model because server-side logic can carry sensitive data, while client-facing output may be derived from it. When a flaw affects the serialization or handling of server component output, the risk is not just code execution. It can also become source disclosure, availability degradation, or both, depending on how the component is written and deployed. In practice, the control problem is that a single vulnerable library can propagate into multiple frameworks that consume it differently.
Practical implication: Map every application that uses React Server Components or dependent frameworks to the exact affected package versions before assuming the fix is complete.
How source code disclosure turns into secrets exposure
Source code exposure becomes materially worse when inline server logic contains credentials, connection strings, or other secrets. The disclosure path does not need to reveal the whole repository to matter. A partial leak can still expose enough operational detail for attackers to pivot into cloud accounts, APIs, or internal services. This is why code secrecy and secrets management overlap: once secrets are embedded in runtime code paths, a code-disclosure issue becomes a credential hygiene issue as well as an application security issue.
Practical implication: Remove embedded secrets from server-side code paths and treat disclosure-prone components as potential secret-exposure points, not just code-quality issues.
Why denial of service is a governance problem, not just an outage
The DoS issue described here is a crafted-request problem that drives an infinite loop and burns CPU resources. That is operationally narrower than remote code execution, but it still matters because availability failures often bypass application owners’ patching urgency until they affect production traffic. In governance terms, the risk is uneven remediation: teams may prioritise the earlier, broader vulnerability while leaving lower-severity but still exploitable paths in place. That creates a patch completeness problem across the software supply chain.
Practical implication: Track patch closure by package and framework path, not by headline CVE severity, so lower-severity follow-ons do not remain open.
Threat narrative
Attacker objective: The attacker aims to steal sensitive source material or disrupt application availability by abusing narrowly exposed server-component behaviour.
- Entry occurs through a crafted request sent to a server component path exposed by specific React Server Components configurations.
- Credential or data exposure follows when server-side logic serialises content that originated inside the component scope and can surface source material.
- Impact is either source code disclosure, including embedded secrets, or a denial of service through an infinite loop that consumes CPU resources.
Breaches seen in the wild
- PHP Git server compromise 2021: Commits faked in two PHP maintainers' names put a backdoor in php-src; the pushes used php.net passwords, likely from a leaked user database.
- Uber breach 2016: An AWS key posted to Uber's private GitHub repositories let intruders copy data on 57 million people; Uber paid $100,000 and hid it for a year.
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
These follow-on flaws show that patching by incident name is not the same as patching by dependency path. A team can resolve the headline vulnerability and still leave related server-component packages exposed because the runtime footprint is distributed across React, Next.js, and variant package names. The practical consequence is that dependency review must become continuous, not event-driven.
Source-code exposure in modern web stacks is also a secrets-governance problem. When inline server code carries connection strings or other sensitive values, a code-disclosure flaw becomes an identity and credential issue, not just an application bug. The more secrets are embedded in runtime paths, the more a disclosure bug can expand into lateral access.
Availability bugs deserve the same inventory discipline as execution bugs. A denial-of-service flaw that depends on a specific request pattern may look less severe on paper, but production impact is still real when the vulnerable component sits on a busy edge or API path. Teams should treat package-specific DoS as a patch-completeness test, not a secondary concern.
React Server Components create a control boundary that many governance programmes still under-map. The named concept here is server-component exposure gap: a situation where teams secure the framework version they know about but miss the runtime and dependency variants that inherit the same weakness. Practitioners should close that gap with package-level inventory and fix verification.
From our research library:
- Internal repositories are 6x more likely to contain secrets than public ones (32.2% vs 5.6%), contradicting the assumption that private repos are safe, according to the State of Secrets Sprawl 2026.
- Read next: Guide to the Secret Sprawl Challenge
What this signals
server-component exposure gap: teams often close the obvious framework advisory while leaving downstream package variants and build artifacts unverified. That gap is where follow-on CVEs persist, so the control needs to move from one-time patching to dependency-path assurance.
Source-code disclosure becomes more consequential when private repositories are assumed to be safe, yet internal repositories are 6x more likely to contain secrets than public ones (32.2% vs 5.6%), according to the State of Secrets Sprawl 2026. The lesson is simple: embedded secrets in server code should be treated as exposure, not convenience.
For practitioners
- Review React Server Components package inventory Identify every deployment using react-server-dom-parcel, react-server-dom-turbopack, react-server-dom-webpack, or downstream frameworks such as Next.js that embed them.
- Verify patch propagation across frameworks Confirm that fixed versions are present in each application path, not only in the top-level React version, because related packages may remain vulnerable even after the original issue is remediated.
- Search for inline secrets in server code Inspect server components for connection strings, API keys, and other embedded credentials that could be exposed if a disclosure path is triggered.
- Prioritise disclosure paths by blast radius Rank any source-code exposure findings by whether the affected component sits on authenticated, public, or high-volume request paths, then remediate the widest exposure first.
- Add package-specific regression checks Create tests and supply-chain checks that fail when a vulnerable React Server Components package re-enters the build, especially through framework upgrades.
Key takeaways
- These React Server Components flaws do not repeat React2Shell, but they do show how related packages can remain exposed after the headline issue is fixed.
- The meaningful risk is not only denial of service. Source-code disclosure can surface embedded secrets and other sensitive implementation details.
- Patch verification has to follow the dependency path and the runtime path, or teams will mistake partial remediation for closure.
Standards & Framework Alignment
This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.
OWASP Non-Human Identity Top 10 and MITRE ATT&CK address the attack and risk surface, while CIS Controls v8 and NIST CSF 2.0 set the governance and control requirements practitioners need to meet.
| Framework | Control / Reference | Relevance |
|---|---|---|
| OWASP Non-Human Identity Top 10 | NHI-02 — Secret Leakage | Source-code disclosure can expose embedded secrets in server components. |
| NHI-07 — Long-Lived Secrets | Hardcoded or persistent credentials increase the impact of disclosure bugs. | |
| Recommendation — Remove embedded secrets from server-side code paths and rotate any credentials that may have been exposed. Shorten secret lifetimes and eliminate long-lived credentials from application code. | ||
| CIS Controls v8 | CIS-16 — Application Software Security | The article is about vulnerable application dependencies and patch propagation. |
| Recommendation — Track vulnerable application dependencies and verify remediation across every build path. | ||
| NIST CSF 2.0 | PR.DS-01 — Data-at-Rest Is Protected | Sensitive data in source code becomes a protection and exposure issue when disclosed. |
| Recommendation — Classify and protect sensitive source material so disclosure bugs do not reveal operational secrets. | ||
| MITRE ATT&CK | TA0006;TA0040 — Credential Access; Impact | The flaw can expose secrets or disrupt availability, matching credential and impact tactics. |
| Recommendation — Map disclosure and DoS findings to credential-access and impact tactics in detection and response workflows. | ||
Key terms
- React Server Components: A server-side rendering model that moves part of the React component tree to the server and streams rendered output to the client. Because it runs inside the application trust boundary, flaws in this layer can expose code, secrets, or processing logic rather than only visual behaviour.
- Source code disclosure: Source code disclosure is the unintended exposure of application source, logic, or embedded data to an attacker or unauthorised party. It becomes especially serious when the code contains secrets, internal endpoints, or implementation details that make later compromise easier.
- Distributed Denial-of-Service: A distributed denial-of-service attack uses many sources to send enough traffic to a target that legitimate users can no longer get through. The purpose is not theft but disruption, and the defender's problem is service exhaustion at the network or application edge.
- Dependency Path: A dependency path shows the chain of packages that connects a vulnerable transitive dependency back to the direct dependency that introduced it. This gives AppSec teams practical context for prioritization, because it reveals how many layers deep the issue sits and which package changes are most likely to remediate the risk.
Deepen your knowledge
NHI Mgmt Group covers identity security, NHI governance, and agentic AI through independent research, practitioner guides, and the NHI Foundation Level course. It is a practical way to strengthen how your programme handles secrets, access, and identity-driven risk across modern stacks.
Published by the NHIMG editorial team on August 2, 2026.
Updated on October 12, 2026.
NHI Mgmt Group, the independent authority on Non-Human Identity, IAM, and Agentic AI security. nhimg.org