STATUS UPDATE (December 13, 2025): Exploitation continues with confirmed China-nexus APT activity. Three additional CVEs disclosed (CVE-2025-55183, CVE-2025-55184, CVE-2025-67779). Latest patches: React 19.2.3 and Next.js 16.0.10+ address all vulnerabilities. Major cloud providers have deployed platform-level protections, but upgrade remains mandatory.
CRITICAL UPDATE (December 6, 2025): Security researchers confirm active exploitation in the wild. CVE-2025-55182, now widely known as “React2Shell,” has been integrated into Mirai and other botnet exploitation toolkits. Nearly 50% of attacking IPs are newly registered infrastructure (December 2025). Post-exploitation activities include cryptocurrency mining, credential theft, and ransomware staging.
Disclosure Notice: This vulnerability was publicly disclosed on December 3, 2025. If you’re running Next.js 14.3+, 15, or 16 with React Server Components, you should upgrade immediately, regardless of your hosting provider.
TL;DR:
What: CVE-2025-55182 (“React2Shell”) is a critical remote code execution (RCE) vulnerability in React Server Components (RSC).
When: Publicly disclosed December 3, 2025; active exploitation confirmed December 6, 2025.
Who: Affects React 19.0.0 - 19.2.0 and Next.js ≥14.3.0-canary.77, all 15.x, all 16.x.
Why: RCE allows attackers to execute arbitrary code on your server, access secrets, and pivot within your infrastructure.
How: Upgrade immediately to React 19.2.3+ and Next.js 16.0.10+ for complete protection (addresses 4 related CVEs).
Today we witnessed defense in depth working exactly as intended. Within hours of CVE-2025-55182 being disclosed, a critical remote code execution vulnerability in React Server Components, we received alerts from two different sources:
Vercel’s dashboard, warning us that WAF rules were already protecting our production deployment
Dependabot PR #87, automatically upgrading Next.js from 16.0.6 to 16.0.7
This is what modern security infrastructure looks like: multiple layers working in concert. Vercel’s WAF provided immediate protection before we could even review the PR, while Dependabot delivered the actual patch for permanent remediation.
In this post, we’ll break down what CVE-2025-55182 is, why it matters, how these layered defenses protected our app, and what you should do to secure your own projects.
CVE-2025-55182, also known as “React2Shell” in the security community, is a critical-severity vulnerability affecting React Server Components (RSC). Under certain conditions, specially crafted requests can lead to unintended remote code execution (RCE) on the server.
The vulnerability exists in React 19’s server-side rendering packages:
react-server-dom-parcel
react-server-dom-webpack
react-server-dom-turbopack
For Next.js specifically, there’s a related CVE: CVE-2025-66478.
Attack Chain Context: Exploitation is fully automated, progressing from scanner identification to payload deployment in under 10 seconds. Attackers use PowerShell arithmetic validation (powershell -c "40138*41979"), encoded payloads, AMSI bypasses, then deploy cryptocurrency miners, backdoors, and credential harvesters.
Here’s what makes this disclosure interesting from a DevSecOps perspective: Vercel’s platform detected and mitigated this vulnerability before Dependabot could even create a PR.
Vercel coordinated with the React team pre-disclosure, deployed WAF rules automatically to all projects, and continuously improved protections as bypass variants emerged. They released automated fix tooling (npx fix-react2shell-next) and began blocking new vulnerable deployments.
“We have created new WAF rules to address this vulnerability and deployed them to Vercel WAF that will automatically and at no cost protect all projects hosted on Vercel.”
— Jimour Lai, Vercel Security Engineer
Important WAF Limitations: Vercel acknowledges that “WAF rules are one layer of defense but can never guarantee 100% coverage.” As new exploit variants emerged (evidenced by payload variations observed on December 8), Vercel identified and patched WAF bypasses, but upgrading remains the only complete fix.
CISA Recognition: The addition of CVE-2025-55182 to CISA’s Known Exploited Vulnerabilities list on December 5 signals that this is now considered a priority threat by federal agencies, underscoring the urgency of remediation.
This means that while the WAF provided valuable defense-in-depth, our production deployment wasn’t truly secure until we merged the upgrade. The WAF bought us time and reduced risk, but it wasn’t a substitute for patching.
Vercel also worked with the React team to provide recommendations to major WAF and CDN providers. This collaborative approach helps protect the broader ecosystem, not just Vercel customers.
Following the disclosure of React2Shell, security researchers discovered three additional vulnerabilities in React Server Components (December 11-13, 2025):
CVE
Severity
Impact
Patched In
CVE-2025-55183
Medium
Source code exposure
React 19.2.2+
CVE-2025-55184
High
Denial of Service
React 19.2.2+
CVE-2025-67779
High
DoS (incomplete CVE-2025-55184 fix)
React 19.2.3+
Recommendation: Upgrade directly to React 19.2.3 to address all four vulnerabilities in one update.
Check your framework’s documentation for specific upgrade instructions. The underlying fix is in React itself, so ensure you’re on React 19.0.1, 19.1.2, or 19.2.1+.
# Search for unusual POST patterns in application logsgrep -E 'POST.*(_prefix|_chunks|_formData)' /var/log/app/*.log# Check for PowerShell execution in function logsgrep -iE 'powershell|cmd\.exe|/bin/sh' /var/log/app/*.log# Look for base64 patterns in request bodiesgrep -E 'base64|[A-Za-z0-9+/]{50,}=' /var/log/app/*.log
# Check for connections to known mining pools or exfiltration servicesnetstat -an | grep -E '(3333|4444|5555|8080|8443)'# Review DNS queries for exfiltration domainstcpdump -i any -n 'udp port 53' | grep -E '(ceye\.io|dnslog\.cn)'
React Server Components represent a significant architectural shift. They blur the line between client and server code, which creates new attack surfaces that didn’t exist in traditional client-side React.
This vulnerability is a reminder that:
Server-side code needs server-side security thinking. RSC isn’t “just React”, it’s React running in a privileged environment.
Framework-level protections matter. Vercel’s ability to deploy WAF rules across their platform demonstrates the value of managed infrastructure.
The disclosure process is evolving. Coordinated disclosure with platform providers can protect users faster than traditional CVE→Dependabot→CI workflows.
After reviewing PR #87, we merged Dependabot’s upgrade from Next.js 16.0.6 to 16.0.7. Subsequently, we’ve received additional automated updates, bringing us to Next.js 16.0.10 and React 19.2.1 as of December 2025. Dependabot linked to the CVE, our CI validated each upgrade, and we deployed. Vercel’s WAF bought us time while Dependabot delivered the permanent fix—we weren’t scrambling, just approving the changes.
Upgrade immediately—this is under active exploitation: Botnet integration confirmed, mass scanning ongoing, post-exploitation includes cryptomining and ransomware staging
Use Vercel’s fix tool for fastest remediation: npx fix-react2shell-next automates the upgrade process
WAF protection is defense-in-depth, not a complete fix: WAF cannot guarantee 100% coverage; bypasses exist and new variants emerge
Monitor for compromise using the detection patterns: PowerShell Event ID 4104, encoded commands, AMSI bypasses, unusual network connections
Enable Dependabot security updates: Same-day PRs for critical vulnerabilities are invaluable (when you actually merge them)
RSC introduces server-side attack surfaces: React Server Components blur client/server boundaries, creating new security considerations
Expect long-term exploitation: This vulnerability will be part of the threat landscape indefinitely—unpatched systems will be found
Don’t test POCs on production: Use version checks and log analysis instead of running exploits