Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2025-55182-React2Shell-Async-Scanner — Async RCE-Scanner für CVE-2025-55182 / CVE-2025-66478 — Prototype-Pollution → Codeausführung über React Server Actions. | Kitploit
Tools/GitHubGitHub/inferiorak/cve-2025-55182-react2shell-async-scanner
AufklärungSchwachstellenscannerDynamische Analyse (Sandboxing)Code-AnalyseExploitationWebanwendungs-ExploitationInformationsbeschaffungCTFPenetrationstests

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Lernen & Bildung
Payload-Entwicklung
GitHubinferiorak/cve-2025-55182-react2shell-async-scanner

CVE-2025-55182-React2Shell-Async-Scanner

Async RCE-Scanner für CVE-2025-55182 / CVE-2025-66478 — Prototype-Pollution → Codeausführung über React Server Actions.

Repository anzeigen
316vor 5 MonatenNoch nicht geprüft
Teilen

⚡ React2Shell

CVE-2025-55182 / CVE-2025-66478 - Async-RCE-Scanner

Python CVE CVE License Author Visitors

Prototype-Pollution → Remote Code Execution über React Server Actions

Async, zuerst Version, dann ausgabebasierte Canary-Erkennung - kein blindes Raten


[!WARNING] Nur für autorisierte Sicherheitsforschung und Penetrationstests. Das Scannen von Systemen ohne ausdrückliche schriftliche Genehmigung ist illegal. Der Autor übernimmt keine Verantwortung für Missbrauch dieses Tools.


Inhaltsverzeichnis

  • Überblick über die Schwachstelle
  • Betroffene Versionen
  • So funktioniert die Erkennung
  • Installation
  • Verwendung
  • Optionen-Referenz
  • Ausgabe & Bewertungen
  • Browser-Modus
  • Pipeline zur Versionserkennung

Überblick über die Schwachstelle

React Server Actions übergeben Aktionsdaten als Multipart-Formulardaten direkt an einen serverseitigen Ausführungskontext. Aufgrund unzureichender Prototype-Pollution-Bereinigung in betroffenen Versionen von react-server-dom-webpack kann ein Angreifer:

  1. Ein manipuliertes Multipart-Payload injizieren, das Object.prototype verschmutzt
  2. _response._prefix am internen Response-Objekt überschreiben
  3. Den Server zwingen, beliebige Shell-Befehle über den folgenden Code auszuführen:
    root@kitploit:~
    process.mainModule.require('child_process').execSync(cmd)
    

Dies ermöglicht nicht authentifizierte Remote Code Execution auf jeder öffentlich erreichbaren Next.js-Anwendung, die React Server Actions mit einer betroffenen React-Version verwendet.

CVE-2025-55182 - Breit: betrifft React-19-Pakete (react-server-dom-webpack, react-server-dom-parcel, react-server-dom-turbopack)
CVE-2025-66478 - Eingeschränkt: Next.js-spezifischer Ausnutzungspfad über den Server-Action-Endpunkt /


Betroffene Versionen

KomponenteVerwundbarGepatcht
React react-server-dom-*19.0.0, 19.1.0, 19.1.1, 19.2.019.0.1, 19.1.2, 19.2.1+
Next.js 16.x16.0.0 – 16.0.616.0.7+
Next.js 15.x15.0.0-15.0.4, 15.1.0-15.1.8, 15.2.0-15.2.5, 15.3.0-15.3.5, 15.4.0-15.4.7, 15.5.0-15.5.615.0.5+, 15.1.9+, 15.2.6+, 15.3.6+, 15.4.8+, 15.5.7+
Next.js 14.x14.3.0-canary.77+ nur Canary-BuildsAlle stabilen 14.x - NICHT betroffen
Next.js 13.x-NICHT betroffen

So funktioniert die Erkennung

Dieser Scanner verwendet die ausgabebasierte Canary-Verifizierung - die zuverlässigste Methode, um echte Codeausführung ohne falsch-positive Ergebnisse zu bestätigen:

root@kitploit:~
1.  POST /  with Next-Action header + multipart prototype-pollution payload
2.  Payload executes:  echo <random_canary>
3.  Vulnerable server throws NEXT_REDIRECT with base64(canary) in the URL
4.  Response header:   X-Action-Redirect: /login?a=<base64(canary)>
5.  Scanner decodes base64 → matches canary → RCE confirmed ✓

allow_redirects=False ist entscheidend - die Bestätigung befindet sich im Header, nicht im Ziel der Weiterleitung.


Installation

root@kitploit:~
git clone https://github.com/InferiorAK/React2Shell
cd React2Shell

pip install -r requirements.txt

# Required only if using --browser mode for improved version detection:
playwright install chromium
playwright install-deps chromium

Anforderungen: Python 3.10+


Verwendung

CVE-2025-55182-Scanner - Breit (React + Next.js)

root@kitploit:~
# Single target
python3 CVE-2025-55182_scanner.py -u https://target.com

# Scan a list of URLs
python3 CVE-2025-55182_scanner.py -f urls.txt

# Quiet mode - only print RCE / Vulnerable results
python3 CVE-2025-55182_scanner.py -f urls.txt -q

# Browser mode - headless Chromium for accurate version detection
python3 CVE-2025-55182_scanner.py -f urls.txt -b

# Full options - recommended for large-scale scanning
python3 CVE-2025-55182_scanner.py -f urls.txt -b -q -c 3 -t 20

Optionen-Referenz

CVE-2025-55182-Scanner

FlagLangformStandardBeschreibung
-u--url-Einzelne Ziel-URL
-f--file-Datei mit einer URL pro Zeile
-o--outputoutputs/vuln.txtAusgabedatei für verwundbare Ziele
-U--unknown-outputoutputs/unknown.txtAusgabedatei für Ziele mit unbekannter Version
-c--concurrency5Parallele HTTP-Verbindungen
-t--timeout15Timeout pro Anfrage (Sekunden)
-q--quietausNur RCE- / VULNERABLE-Zeilen ausgeben
-b--browserausPlaywright-Headless-Chromium-Fallback zur Versionserkennung

Ausgabe & Bewertungen

Jedem gescannten Ziel wird eine der folgenden Bewertungen zugewiesen:

BewertungFarbeBedeutung
RCE🔴 RotCanary in X-Action-Redirect bestätigt - bewiesene Remote Code Execution
VULNERABLE🟠 OrangeVersion liegt im verwundbaren Bereich; das RCE-Payload wurde nicht zurückgespiegelt (WAF / gepatchte Konfiguration / falscher Endpunkt)
Unknown🟡 GelbNext.js bestätigt, aber die Version konnte nicht erkannt werden - RCE wurde trotzdem versucht; für einen erneuten Versuch im Browser-Modus in outputs/unknown.txt gespeichert
Not Vulnerable🟢 GrünVersion als gepatcht bestätigt oder RCE explizit als sicher zurückgegeben
Skipped⚪ WeißBestätigt gepatchte Version oder keine Next.js-Website - kein PoC versucht
Error⚪ WeißHost nicht erreichbar oder Verbindung fehlgeschlagen

Ausgabedateien (werden im Ordner outputs/ gespeichert, der automatisch erstellt wird):

  • outputs/vuln.txt - RCE- und VULNERABLE-Ergebnisse (werden bei jedem Lauf angehängt)
  • outputs/unknown.txt - Ziele mit Unknown-Version; diese mit -b erneut prüfen, um die Version genau zu erkennen

Browser-Modus

Warum wird die Version bei über 90 % der Websites als unknown angezeigt?

Modernes Next.js 13+ mit App-Router-Architektur bettet die Framework-Version niemals in statisches HTML ein. Die Version existiert nur in window.next.version, nachdem JavaScript in einem echten Browserkontext ausgeführt wurde.

Ohne --browser:

  • Die Versionserkennung stützt sich auf HTTP-Header, __NEXT_DATA__, Inline-Skripte und gehashte Chunk-Dateien
  • App-Router-Websites liefern fast immer unknown zurück - die versionsbasierte Filterung wird umgangen

Mit --browser (-b):

  • Playwright startet Headless-Chromium
  • Das JavaScript der Seite wird vollständig ausgeführt
  • Der Scanner liest window.next.version direkt aus dem Live-DOM
  • Die Versionsgenauigkeit steigt bei modernen Next.js-Websites von ~10 % auf nahezu 100 %
root@kitploit:~
# Recommended with browser mode - reduce concurrency (browser pages are resource-heavy)
python3 CVE-2025-55182_scanner.py -f urls.txt -b -c 3

Pipeline zur Versionserkennung

Der Scanner durchläuft bis zu 7 Stufen und stoppt, sobald eine Version gefunden wurde:

root@kitploit:~
Stage 1 │ HTTP Response Headers
        │  X-Powered-By: Next.js X.Y.Z
        │  x-nextjs-*, x-next-version

Stage 2 │ Inline <script> Blocks (per-block scan)
        │  window.next = { version: "X.Y.Z", ... }
        │  version:"X.Y.Z", router: ...      ← minified bundle adjacent-key pattern
        │  "nextVersion":"X.Y.Z"
        │  Next.js vX.Y.Z                    ← plain text in meta / HTML comments
        │  __NEXT_VERSION__ = "X.Y.Z"

Stage 3 │ __NEXT_DATA__ JSON Blob
        │  Pages Router only - "version":"X.Y.Z" safe in this context

Stage 4 │ Hashed Chunk URLs (extracted from <script src>)
        │  /_next/static/chunks/*, /_next/static/app/*, /_next/static/runtime/*
        │  Fetches up to 12 real bundle files, scans for version strings

Stage 5 │ Fixed-name Fallback Chunks
        │  main.js, framework.js, webpack.js, _app.js, pages/_app.js

Stage 6 │ /package.json endpoint
        │  Dev mode / misconfigured servers expose this directly

Stage 7 │ Playwright Headless Browser  [--browser / -b only]
        │  Evaluates window.next.version after full JS execution
        │  Only triggered when stages 1–6 return "unknown"

Haftungsausschluss

Dieses Tool wird ausschließlich für Bildungszwecke und autorisierte Sicherheitsforschung veröffentlicht.
Der Autor, InferiorAK, ist nicht für Schäden verantwortlich, die durch Missbrauch entstehen.
Hol immer eine schriftliche Genehmigung ein, bevor du ein System testest, das dir nicht gehört.


Erstellt von InferiorAK


Meine Links

Github Facebook Messenger Twitter YouTube

Tool herunterladen