Skip to content
KitploitKITPLOIT
ToolsBlog
Log in
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
CVE-2025-55182-scanner — A non-intrusive surface scanner for CVE-2025-55182 (React Server Components RCE). Detects exposed RSC endpoints in React 19 and Next.js applications | Kitploit
Tools/GitHubGitHub/fatguru/cve-2025-55182-scanner
Vulnerability ScannersExploitationWeb Application ExploitationWAF BypassWeb SecurityPenetration TestingRed Teaming
GitHubfatguru/cve-2025-55182-scanner

CVE-2025-55182-scanner

A non-intrusive surface scanner for CVE-2025-55182 (React Server Components RCE). Detects exposed RSC endpoints in React 19 and Next.js applications

View Repository
11217169 months agoReviewed by Kitploit

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

React Server Components Surface Exposure Scanner

(CVE-2025-55182)

A specialized, non-intrusive surface detector for CVE-2025-55182 (React Server Components RCE).


⚠️ Critical Technical Context

Read this before scanning:

While CVE-2025-55182 is a critical RCE vulnerability (CVSS 10.0), real-world exploitation in Next.js production environments is conditional.

  1. The Whitelist Barrier: Next.js uses a serverManifest to whitelist allowed modules. Direct attempts to load dangerous modules (like child_process) via RSC often fail because they are not in this manifest.
  2. The Attack Chain: To achieve RCE on a hardened target, attackers often need to chain this vulnerability with a Prototype Pollution primitive to overwrite the serverManifest in memory and bypass the whitelist.
  3. Webpack Minification: In production builds, module IDs are minified (e.g., 742 instead of "vm"). Rigid exploits guessing names will fail (False Negatives).

This tool is a Surface Detector. It identifies if the RSC protocol is exposed and active. Finding an exposed endpoint is the prerequisite step to identifying the attack surface where a Prototype Pollution chain could be attempted.


🛡️ Why use this Surface Detector?

  • Most public PoCs and scanners result in False Negatives in production environments because they fall into four common traps:

  • Exploit Rigidity: They try to execute specific gadgets (like vm or child_process) which are blocked by whitelists, or rely on hardcoded IDs (e.g., "id":"vm") that fail against minified Webpack builds.

  • Root Redirects: Hitting POST / on Next.js often triggers a 307/308 redirect (e.g., to /login), causing the POST body to be lost or converted to GET before the server processes it.

  • Transport Mismatch: Many scanners send payloads as text/plain or raw JSON. Strict Next.js Server Actions often require multipart/form-data encapsulation. If the format is wrong, the server returns 404/200 without ever triggering the vulnerable parser.

  • WAF Blindness: Standard tools see a 403 Forbidden and give up. They fail to distinguish between a global IP block and a specific rule filter, missing opportunities to bypass the WAF using encoding or padding techniques.

This scanner solves all three challenges:

✅ Smart Path Probing: Automatically probes random non-existent paths (e.g., /x7z9q2) to bypass root redirects (307/308) and force the Next.js App Router to process the request context.

✅ Strict Transport (Multipart): Uses multipart/form-data encapsulation instead of plain text. This resolves False Negatives on strict Server Action endpoints that otherwise return 404s.

✅ WAF Differential Analysis: Distinguishes between global blocks ([BLOCKED]) and specific rule filtering ([FILTERED]). If the backend allows the protocol but blocks the payload, the scanner identifies it as a high-value target.

✅ Auto-Bypass Mode: Includes an optional --bypass engine that automatically attempts evasion techniques (Unicode escapes, Whitespace mutation, Junk Padding) against [FILTERED] targets.

✅ Hardened Detection: Catches "Silent Crashes" ([SUSPICIOUS]) on enterprise servers that strip X-Powered-By headers, and identifies the Assetnote 303 See Other redirect fingerprint.

✅ Active Fingerprinting: Uses a specialized payload (["$1:aa:aa"]) to trigger the unique React 19 RSC "Digest" error, confirming the parser is active even without a full RCE.


🚀 Installation

  1. Clone the repository:

    git clone https://github.com/fatguru/CVE-2025-55182-scanner.git
    cd CVE-2025-55182-scanner
    
    
  2. Install dependencies (recommended in a virtual environment):

    pip install -r requirements.txt
    

💻 Usage

Basic Scan

Check a single URL. Note: Ensure you point to the correct application path (e.g., /dashboard, /login), not just the root domain, as Next.js App Router endpoints are path-specific.

python3 cve_2025_55182_scanner.py -u http://localhost:3000/dashboard

Bulk Scan

Scan a list of URLs from a file (one URL per line). This is the recommended strategy to avoid missing specific paths.

python3 cve_2025_55182_scanner.py -l targets.txt -o results.csv

Insecure Mode (New)

Ignore SSL/TLS certificate errors (useful for IP-based scanning, local labs, or self-signed certs).

python3 cve_2025_55182_scanner.py -u [https://192.168.1.50](https://192.168.1.50) -k

Scan with Custom Headers (WAF Bypass / Auth)

New in v2.1: Use the --header flag to pass session cookies or tokens if the app is behind authentication or a WAF that requires specific headers.

python3 cve_2025_55182_scanner.py -u https://target.com --header "Cookie: session=123" --header "Authorization: Bearer xyz"

Options

FlagDescription
-u, --urlSingle target URL (e.g., http://target.com/dashboard).
-l, --listFile containing a list of URLs to scan (one per line).
--bypass(New v2.5) Enable WAF Evasion mode. Automatically attempts mutation techniques (Unicode, Padding, Whitespace) if a target is detected as [FILTERED].
--headerAdd custom headers (e.g., Cookie: session=xyz, Authorization: Bearer...). Can be used multiple times.
-o, --outputSave results to a text file.
-k, --insecureDisable TLS certificate verification (Suppress SSL warnings).
-t, --threadsNumber of concurrent threads for bulk scanning (default: 10).
--timeoutRequest timeout in seconds (default: 10s to accommodate multipart payloads).
--verboseEnable debug mode. Shows detailed probing steps, WAF blocking status, and bypass attempts.

📊 Interpreting Results (v2.5)

[EXPOSED] | 🔴 (Red) | Vulnerable

The server processed the payload and returned a React 19 digest error OR an Action Redirect (303). High confidence of exposed surface.

[BYPASSED] | 🟠 (Orange) | WAF Evaded

Success! The scanner initially detected a filter, but successfully evaded it using mutation techniques (e.g., Padding/Unicode) to trigger the vulnerability.

[SUSPICIOUS] | 🟡 (Yellow) | Warning

The server crashed (500) while parsing the payload. Indicates exposed serialization logic, even on hardened targets that strip X-Powered-By headers.

[FILTERED] | 🔵 (Blue) | WAF Rule Detected

The server accepts RSC traffic (Benign payload passed), but a specific WAF rule blocked the exploit payload. The target is alive behind the WAF. Use --bypass to attempt evasion.

[INFO] | 🔵 (Cyan) | Protocol Detected

The server speaks RSC (text/x-component) but handled the payload gracefully. Likely patched or standard behavior.

[BLOCKED] | 🟣 (Magenta) | Global WAF Block

Everything was blocked (403/406), including the benign handshake. The WAF is blocking the protocol entirely or your IP.

[SAFE] | 🟢 (Green) | Clean

Server returned 404/200 but ignored RSC headers/multipart bodies on all probed paths.

🛠️ Nuclei Template (https://github.com/projectdiscovery/nuclei)

A Nuclei template based on this detection logic is included in this repository: cve-2025-55182-detection.yaml.

nuclei -t cve-2025-55182-detection.yaml -l targets.txt
Download Tool