
A critical deserialization flaw in React Server Components demands immediate attention—here’s how to find it in your codebase.
The application security community is responding to React2Shell (CVE-2025-55182), a maximum-severity vulnerability affecting React Server Components that security researchers are comparing to Log4Shell. With a Common Vulnerability Scoring System (CVSS) score of 10.0, unauthenticated remote code execution capabilities, and active exploitation already observed in the wild, this vulnerability represents an urgent priority for any organization running React or Next.js applications.
The good news? If you’re using Kiuwan for your application security testing, you have multiple detection vectors at your disposal. Let’s walk through how to leverage static application security testing (SAST), software composition analysis (SCA), and custom rules to identify and remediate this threat.
Before diving into detection, it helps to understand what we’re dealing with. React2Shell exploits unsafe deserialization in the React Flight protocol, the mechanism React uses to communicate between client and server in React Server Components (RSC).
An attacker crafts a malicious HTTP payload that injects metadata pointing to dangerous prototype-chain properties. When React’s server-side request decoding logic processes this payload, it deserializes attacker-controlled input unsafely, achieving arbitrary code execution on the server.
The affected components include:
| Package | Vulnerable Versions |
| react-server-dom-webpack | 19.0.0, 19.1.0, 19.1.1, 19.2.0 |
| react-server-dom-parcel | 19.0.0, 19.1.0, 19.1.1, 19.2.0 |
| react-server-dom-turbopack | 19.0.0, 19.1.0, 19.1.1, 19.2.0 |
| Next.js | ≥14.3.0-canary.77, 15.x, 16.x |
Additionally, frameworks that embed these packages are affected: React Router, Waku, RedwoodJS, Vite RSC plugin, and Parcel RSC.
Your first line of defense is Kiuwan Insights, which performs Software Composition Analysis to identify vulnerable third-party components in your applications.
Search your component inventory for:
react-server-dom-webpackreact-server-dom-parcelreact-server-dom-turbopacknext (versions 14.3.0-canary.77 through 16.x)Kiuwan’s SCA engine will automatically correlate these components against known CVE databases, flagging CVE-2025-55182 and CVE-2025-66478 (the Next.js-specific identifier) when detected.
Set up a continuous monitoring policy that alerts your team whenever new Critical vulnerabilities are discovered in components already present in your codebase. This ensures you’re notified immediately when threats like React2Shell emerge, rather than waiting for your next scheduled scan.
Set up a continuous monitoring policy that alerts your team whenever new Critical vulnerabilities are discovered in components already present in your codebase. This ensures you’re notified immediately when threats like React2Shell emerge, rather than waiting for your next scheduled scan.
While SCA catches the vulnerable packages themselves, there’s an additional layer of protection available through Kiuwan’s custom rule capabilities. This approach proved invaluable during the polyfill.io compromise and applies equally well here.
Some attack patterns involve hard-coded references to malicious endpoints, compromised package names, or known exploit signatures. By creating custom rules that search for specific string constants in your codebase, you can:
Using Kiuwan’s Rules Management feature, you can create a custom JavaScript/TypeScript rule that flags occurrences of the vulnerable package names.
react-server-dom-webpackreact-server-dom-parcelreact-server-dom-turbopack@next/react-server-domFor more granular detection, extend your rule to catch specific version strings in package.json and package-lock.json files:
"react-server-dom-webpack": "19.0.0"
"react-server-dom-webpack": "19.1.0"
"react-server-dom-webpack": "19.1.1"
"react-server-dom-webpack": "19.2.0"
This approach provides a low-cost safety net that complements your SCA scanning, catching references that might slip through more complex analysis.
Beyond composition analysis, Kiuwan’s SAST engine can help identify code patterns that might indicate exploitation attempts or unsafe deserialization handling.
Configure your Kiuwan model to flag:
While these won’t directly detect React2Shell, they represent defense-in-depth measures that help identify code that might be vulnerable to similar deserialization attacks.
Once you’ve identified affected applications, remediation is straightforward:
| Component | Fixed Versions |
| React | 19.0.1, 19.1.2, 19.2.1 |
| Next.js | 14.3.0-canary.88, 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7 |
React2Shell follows a familiar pattern: a critical vulnerability in a ubiquitous component that requires rapid response across the industry. Here’s how to position your security program for the next incident:
When React2Shell hit, organizations with established processes responded faster.
Be sure to document:
React2Shell represents exactly the kind of supply chain threat that modern AppSec programs must be prepared to handle: a maximum-severity vulnerability in foundational infrastructure, with active exploitation beginning within hours of disclosure.
Kiuwan users have multiple tools to detect and respond to this threat. SCA scanning identifies vulnerable components automatically, custom string-detection rules provide an additional safety net, and continuous monitoring ensures you’re notified immediately when new vulnerabilities affect your stack.
The question isn’t whether another Log4Shell-scale vulnerability will emerge—it’s when. By building robust detection capabilities now, you’ll be ready when it does.
Ready to verify your React2Shell exposure? Run a fresh scan in Kiuwan today, and consider implementing custom string-detection rules for additional coverage. For more information on rules management, visit the Kiuwan support documentation.
*This technical note was prepared for Kiuwan users and AppSec engineers responding to the React2Shell vulnerability disclosure.
JD Burke is a seasoned technology professional with over 20 years of experience in product management and application security, currently serving as Director of Security Products at Sembi. His deep expertise in application security testing spans SAST, SCA, and DevOps integration, demonstrated through senior technical roles at leading cybersecurity companies including Snyk, CyberRes/Fortify, and Kiuwan. His technical foundation includes systems architecture experience. He combines strong product management skills with hands-on application security knowledge, having successfully led cross-functional teams through strategic planning, feature development, and market positioning while maintaining expertise in vulnerability assessment, compliance frameworks, and security tool integration.