Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
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 — RCE-Exploit-Toolkit für CVE-2025-55182 und CVE-2025-66478 in React Server Components. Enthält mehrere Exploit-Varianten, Erkennungsskripte, einen verwundbaren Testserver und eine tiefgehende technische Analyse der Flight-Protokoll-Deserialisierungsschwachstelle. | Kitploit
Tools/GitHubGitHub/freeqaz/react2shell
Dynamische Analyse (Sandboxing)SchwachstellenanalyseCode-AnalyseExploitationWebanwendungs-ExploitationPenetrationstestsPapers & ForschungLernen & BildungPayload-Entwicklung
GitHubfreeqaz/react2shell

react2shell

RCE-Exploit-Toolkit für CVE-2025-55182 und CVE-2025-66478 in React Server Components. Enthält mehrere Exploit-Varianten, Erkennungsskripte, einen verwundbaren Testserver und eine tiefgehende technische Analyse der Flight-Protokoll-Deserialisierungsschwachstelle.

681810vor 9 MonatenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Repository anzeigen
Teilen

React2Shell: RCE 0‑Day in React Server Components

CVE-2025-55182 (React) und CVE-2025-66478 (Next.js)

Dieses Repository enthält Exploit‑Code, der ausschließlich für autorisierte Sicherheitstests und zu Bildungszwecken bestimmt ist.

Siehe auch: Mehrere Forscher haben Analysen dieser Schwachstelle veröffentlicht. Im Abschnitt Referenzen finden Sie zusätzliche Perspektiven, Exploit‑Techniken und Erkennungsmethoden.

Was ist das?

Am Mittwoch, dem 3. Dezember 2025, wurde eine kritische Remote‑Code‑Ausführung‑Schwachstelle in React Server Components öffentlich bekannt gegeben. Der Fehler mit dem Namen „React2Shell“ ermöglicht es einem nicht authentifizierten Angreifer, beliebigen Code auf jedem Server auszuführen, der verwundbare Versionen von React RSC oder dem Next.js App Router verwendet – und zwar durch das Senden einer einzigen HTTP‑Anfrage.

Angesichts der weiten Verbreitung von Next.js – es betreibt einen erheblichen Teil des modernen Webs – sind die Auswirkungen dieser Schwachstelle schwerwiegend. Jede Next.js‑Anwendung, die den App Router (seit Next.js 13 der Standard für neue Projekte) mit aktiviertem RSC verwendet, ist verwundbar. Keine besondere Konfiguration. Keine spezifischen Endpunkte. Einfach eine POST‑Anfrage an eine beliebige Route.

Die Schwachstelle liegt im „Flight“‑Protokoll von React, dem Serialisierungsformat, das zum Übertragen von Daten zwischen Server und Client in React Server Components verwendet wird. Eine fehlende hasOwnProperty‑Prüfung während der Deserialisierung ermöglicht eine Traversierung der Prototypenkette, die schließlich den JavaScript-Function‑Konstruktor erreicht, um vom Angreifer kontrollierten Code auszuführen.

Der Fehler existiert in den Paketen react-server-dom-webpack, react-server-dom-turbopack und react-server-dom-parcel von React. Next.js als der dominierende RSC‑Konsument erbt die Schwachstelle durch seinen App Router.

Wer ist betroffen?

Viele Dienste sind potenziell verwundbar. Next.js ist eines der beliebtesten React‑Frameworks und wird von Unternehmen jeder Größe eingesetzt – von Startups bis zu Großunternehmen. Der App Router mit React Server Components ist seit Version 13 die Standardarchitektur für neue Next.js‑Projekte, daher sind die meisten modernen Next.js‑Bereitstellungen betroffen.

Jede Anwendung, die Folgendes verwendet:

  • React Server Components mit verwundbaren react-server-dom-*‑Paketen (19.0.0 – 19.2.0)
  • Next.js App Router der Versionen 15.x (vor 15.0.5) und 16.x (vor 16.0.7)

Dies umfasst Produktionsbereitstellungen auf Vercel, AWS, selbst gehosteter Infrastruktur und überall dort, wo Next.js App Router‑Anwendungen ausgeführt werden.

Nicht betroffen:

  • Next.js Pages Router‑Anwendungen (kein RSC)
  • Stabile Releases von Next.js 13.x und 14.x
  • Anwendungen, die nur clientseitiges React‑Rendering verwenden
  • Edge Runtime‑Bereitstellungen (kein process.mainModule verfügbar)

Betroffene Versionen

React Server Components

PaketVerwundbarBehoben
react-server-dom-webpack19.0.0, 19.1.0, 19.1.1, 19.2.019.0.1, 19.1.2, 19.2.1+
react-server-dom-turbopack19.0.0, 19.1.0, 19.1.1, 19.2.019.0.1, 19.1.2, 19.2.1+
react-server-dom-parcel19.0.0, 19.1.0, 19.1.1, 19.2.019.0.1, 19.1.2, 19.2.1+

Next.js

VersionVerwundbarBehoben
15.0.x< 15.0.515.0.5+
15.1.x< 15.1.915.1.9+
15.2.x< 15.2.615.2.6+
15.3.x< 15.3.615.3.6+
15.4.x< 15.4.815.4.8+
15.5.x< 15.5.715.5.7+
16.0.x< 16.0.716.0.7+

Abhilfe

Sofort aktualisieren. Es gibt keine Workarounds.

Für Next.js‑Anwendungen:

npm install next@latest
# oder
pnpm update next

Für die direkte Nutzung von React RSC:

npm install react-server-dom-webpack@latest

Überprüfen Sie Ihre installierten Versionen:

npm ls next react-server-dom-webpack react-server-dom-turbopack

Wie der Exploit funktioniert

Voraussetzungen für den Exploit

  1. Ein Server, der verwundbare React Server Components ausführt (über Next.js App Router oder direkte RSC‑Nutzung)
  2. Netzwerkzugriff zum Senden einer HTTP‑POST‑Anfrage
  3. Das war’s. Keine Authentifizierung. Kein spezifischer Endpunkt. Jede Route funktioniert.

Der Angriff

Es wurden mehrere Angriffsvektoren für diese Schwachstelle entdeckt. Der häufigste – und derjenige, der ohne Voraussetzungen funktioniert – nutzt Prototyp‑Verschmutzung über das Flight‑Protokoll‑Referenzsystem von React.

Der Exploit sendet eine maßgeschneiderte Multipart‑POST‑Anfrage mit einem Next‑Action‑Header. Die Payload missbraucht das Referenzsystem, um:

  1. Die Prototypenkette über $1:__proto__:then zu traversieren
  2. Ein gefälschtes „Chunk“‑Objekt zu konstruieren, das Reacts interne Chunk‑Klasse nachahmt
  3. Den Deserialisierer dazu zu bringen, den JavaScript-Function‑Konstruktor aufzurufen
  4. Beliebigen Code auszuführen, wenn die resultierende Funktion als Promise‑Thenable aufgerufen wird
POST / HTTP/1.1
Host: target.com
Content-Type: multipart/form-data; boundary=----Boundary
Next-Action: x

------Boundary
Content-Disposition: form-data; name="0"

{"then":"$1:__proto__:then","status":"resolved_model","value":"{...}","_response":{...}}
------Boundary
Content-Disposition: form-data; name="1"

"$@0"
------Boundary--

Der Code wird während der Deserialisierung ausgeführt, bevor eine Validierung der Aktions‑ID erfolgt. Das bedeutet, dass jeder Next‑Action‑Header‑Wert den verwundbaren Codepfad auslöst – es ist keine gültige Aktions‑ID erforderlich.

Andere Angriffsvektoren existieren, darunter $F‑Funktionsreferenzen und direkte Modul‑Gadgets. Diese erfordern in der Regel eine gültige Aktions‑ID. Siehe Alternative Angriffsvektoren für Details.

Die Ursache

Das Flight‑Protokoll von React löst Referenzen wie $1:path:to:value auf, indem es an Doppelpunkten trennt und das Objekt traversiert:

// ReactFlightReplyServer.js - getOutlinedModel()
for (let i = 1; i < path.length; i++) {
  value = value[path[i]];  // No hasOwnProperty check!
}

Die Ironie: Ganz oben in derselben Datei, Zeile 35:

import hasOwnProperty from 'shared/hasOwnProperty';

Die Absicherung wurde importiert. Sie war verfügbar. Sie wurde nur nicht in der einen Schleife verwendet, in der sie am wichtigsten gewesen wäre.

Diese einzelne fehlende Prüfung erlaubt es, mit $1:__proto__:then von einem Chunk‑Objekt aus die Prototypenkette hinauf zu Chunk.prototype.then zu gelangen – einer Funktion, die Promise‑ähnliche Objekte verarbeitet. Indem ein gefälschter Chunk mit den richtigen Eigenschaften erstellt wird, wird kontrolliert, welcher Code ausgeführt wird.

Lokale Reproduktion

Klonen Sie den verwundbaren Testserver:

git clone https://github.com/freeqaz/react2shell
cd react2shell/vulnerable-next-server
pnpm install
pnpm dev

In einem anderen Terminal:

./detect.sh http://localhost:3443

Ein verwundbarer Server antwortet mit HTTP 500 und E{"digest" im Antworttext. Um RCE zu demonstrieren:

./exploit-redirect.sh http://localhost:3443 "id"

Die Befehlsausgabe erscheint in der Antwort. Für interaktive Erkundung:

./shell.sh http://localhost:3443

Was in diesem Repository enthalten ist

Verwundbarer Testserver

Das Verzeichnis vulnerable-next-server/ enthält eine vorkonfigurierte Next.js‑16.0.6‑Anwendung mit React 19.2.0 für sicheres lokales Testen. Sie läuft standardmäßig auf Port 3443. Es handelt sich um eine minimale App‑Router‑Einrichtung, die demonstriert, dass Standardkonfigurationen verwundbar sind.

Exploit‑Skripte

Wir haben mehrere Exploit‑Varianten entwickelt, um verschiedene Szenarien abzudecken:

Tool herunterladen