Cookie Preferences

    We use cookies to enhance your experience, analyze site traffic, and for marketing purposes. You can customize your preferences or accept all cookies.

    Back to Blog

    Learning more about the React Vulnerability That Shook Cloudflare

    David O'Dey
    December 16, 2025
    4 min read
    Share:
    Learning more about the React Vulnerability That Shook Cloudflare

    React2Shell: The Critical Vulnerability That Briefly Knocked Cloudflare Offline

    In early December 2025, a maximum-severity remote code execution (RCE) flaw in React Server Components—dubbed React2Shell (CVE-2025-55182)—sent shockwaves through the web development world. Rated CVSS 10.0, this unauthenticated bug allowed attackers to run arbitrary code on vulnerable servers with a single crafted request. While the vulnerability itself didn't directly exploit Cloudflare, the company's rapid emergency mitigation efforts accidentally triggered a 25-minute global outage on December 5, 2025, flooding millions of sites with 500 errors. This incident highlighted the real-world risks of modern web frameworks and the high-stakes race to patch critical threats.

    What Happened: A Timeline of Events

    Date Event
    November 29, 2025 Independent researcher Lachlan Davidson responsibly reports the vulnerability to Meta via bug bounty.
    December 3, 2025 React team publicly discloses CVE-2025-55182 and releases patches. Exploitation begins almost immediately, with scanning and attacks observed in the wild.
    December 5, 2025 Cloudflare rolls out emergency WAF changes (including increasing request body buffer to 1MB) to block exploits for customers. This breaks internal tools, causing a 25-minute outage starting ~8:47 UTC, affecting ~28% of HTTP traffic (millions of requests per second returning 500 errors).
    Ongoing (as of Dec 15, 2025) Active exploitation by threat actors, including China-nexus groups. CISA adds to Known Exploited Vulnerabilities (KEV) catalog.

    The outage was not from direct exploitation of Cloudflare's systems—it was a self-inflicted side effect of proactive defenses. As Cloudflare's postmortem explained: changes to body parsing logic disrupted service while aiming to protect users.

    The Key Players

    • Lachlan Davidson: The discoverer who responsibly disclosed the flaw, earning credit for helping safeguard the ecosystem.
    • React Team (Meta): Quickly patched the core issue in React's Flight protocol.
    • Cloudflare: Deployed automatic WAF protections for all customers but accidentally caused downtime during rollout. Their Rust-rewritten components remained stable, while Lua-based parts faltered—sparking renewed praise for Rust's memory safety.
    • Threat Actors: Rapid weaponization by sophisticated groups, targeting cloud instances and critical infrastructure.

    Why React2Shell Terrifies Security Experts

    At its core, React2Shell exploits unsafe deserialization in React's Flight protocol—the mechanism for streaming server-rendered components to clients. Attackers craft malicious payloads (using special "model strings" and promise hijacking) that trick the server into executing arbitrary JavaScript via the Function constructor. This echoes classic serialization bugs (like old Java issues) but in a widely used modern stack. No authentication needed—just one HTTP POST to a server action endpoint.

    Who Is Affected?

    • Apps using React 19.x Server Components (RSC) with vulnerable versions.
    • Frameworks like Next.js (App Router), React Router, Waku, and others bundling RSC.
    • Not affected: Pure client-side React apps or those without server actions.

    Vulnerable Versions

    Package Vulnerable Range
    React 19.0.0 – 19.2.0
    Next.js Various 15.x/16.x pre-patch

    Patched Versions

    Package Safe Versions
    React 19.0.1, 19.1.2, 19.2.1+
    Next.js 15.5.7+, 16.0.7+

    Attack Vectors and Indicators

    Exploits involve crafted Flight payloads in POST requests. Early signs included scanning for vulnerable endpoints and attempts to steal credentials or deploy malware. WAF providers (Cloudflare, AWS, etc.) deployed blocking rules, but patches are essential—some bypasses exist.

    Lessons Learned: Rust Shines, Proactive Defense Matters

    The Cloudflare outage underscored a silver lining: their newer Rust-based proxy layers stayed up, while legacy Lua code crashed on a nil value. This real-world example fueled discussions on memory-safe languages like Rust for critical infrastructure.

    Why This Matters for Developers

    React2Shell is a wake-up call: experimental features like Server Components bring power but also risks. Deserialization from untrusted sources remains a perennial threat.

    Best Practices:

    • Upgrade immediately to patched versions.
    • Minimize exposure of server actions.
    • Use WAFs as a temporary layer.
    • Audit dependencies and avoid unneeded RSC features in production.
    • Monitor for exploitation attempts.

    What's Next?

    With active exploits ongoing, expect more patches for related issues and increased adoption of safer patterns. Tools for detecting RSC vulnerabilities are emerging fast. This event showed how quickly critical flaws can ripple across the internet—and how heroic mitigation can sometimes cause temporary chaos. Stay patched, stay vigilant.

    Patch now. Serialize safely. The web depends on it.

    For details: React Advisory Cloudflare Postmortem

    Share:

    Comments

    Want a second opinion on your website?

    We are a North Phoenix web studio building honest, fast websites for local businesses since 2007. Tell us what is not working and we will give you a free, no pressure site checkup.

    Get a Free Site Checkup