
Bash-Skript zur Erkennung von CVE-2025-55182 (React2Shell) und Offenlegung von Zugangsdaten in Next.js-Projekten. Keine Abhängigkeiten.
日本語版は README.ja.md を参照してください。
Bash-Skript zur Erkennung von CVE-2025-55182 (React2Shell) und der Offenlegung von Anmeldeinformationen in Next.js-Projekten. Keine Abhängigkeiten.
CVSS: 10.0 (CRITICAL) | CWE-502: Deserialisierung nicht vertrauenswürdiger Daten | SNORT SID: 65554
Nicht authentifizierte Remotecodeausführung durch Deserialisierung nicht vertrauenswürdiger Daten in Next.js Server Components. Ein Angreifer sendet eine präparierte HTTP-Anfrage an einen beliebigen Next.js Server Component-Endpunkt; der Server deserialisiert die Nutzlast und führt beliebigen Code aus.
Betroffene Versionen:
| Paket | Verwundbarer Bereich |
|---|
| Next.js | 15.0.0–15.0.4, 15.1.0–15.1.8, 15.2.0–15.2.5, 15.3.0–15.3.5, 15.4.0–15.4.7, 15.5.0–15.5.6, 15.6.0, 16.0.0–16.0.6 |
| React | 19.0.0, 19.1.0, 19.1.1, 19.2.0 |
Referenzen:
Phase 1 — Next.js-Version: Liest package.json, package-lock.json und yarn.lock, um die aufgelöste Next.js-Version zu finden und vergleicht sie mit dem verwundbaren Bereich.
Phase 2 — React-Version: Gleicher Ansatz für React (19.0.0, 19.1.0, 19.1.1, 19.2.0).
Phase 3 — App Router / Server Components: Erkennt das app/-Verzeichnis und "use server"-Direktiven. Eine verwundbare Version mit aktiven Server Components stellt eine aktive Angriffsfläche dar.
Phase 4 — Offenlegung von Anmeldeinformationen: Scannt .env*-Dateien (schließt .env.example und .env.sample aus), next.config.* und Quelldateien auf API-Schlüssel, Datenbank-URLs, JWT-Geheimnisse und hartcodierte geheime Präfixe (sk-, AKIA, ghp_, npm_).
Phase 5 — SSH-Schlüssel: Sucht nach privaten Schlüsseldateien (id_rsa, *.pem, *.p12 usw.) und im Projekt committeten .ssh/-Verzeichnissen.
Phase 6 — Cloud-Konfiguration: Überprüft Docker Compose-Dateien auf hartcodierte Geheimnisse, Kubernetes-Manifeste auf Offenlegung von Service-Account-Tokens und AWS SDK-Nutzung auf IMDSv2-Hinweise.
Phase 7 — IOC-Prüfung: Sucht nach C2-IP-Adressen aus Cisco Talos Intelligence und verdächtigen /tmp/-Dotfile-Mustern (Linux).
C2 IPs (Cisco Talos): 144.172.102.88 / 172.86.127.128 / 144.172.112.136 / 144.172.117.112
Phase 8 — Zusammenfassung: CRITICAL/WARNING/INFO-Zählungen mit Korrekturschritten.
Keine Installation erforderlich. Herunterladen und ausführen:
curl -O https://raw.githubusercontent.com/aliksir/nextjs-security-scanner/main/scan.sh
bash scan.sh [target-directory]
Oder klonen:
git clone https://github.com/aliksir/nextjs-security-scanner.git
bash nextjs-security-scanner/scan.sh /path/to/your/nextjs-app
# Aktuelles Verzeichnis scannen
bash scan.sh
# Ein bestimmtes Projekt scannen
bash scan.sh /path/to/nextjs-app
# In CI/CD (Exit-Code ungleich 0 = Pipeline fehlschlagen lassen)
bash scan.sh . || exit 1
Exit-Codes:
0 — Keine Probleme1 — Warnungen (Anmeldeinformationsmuster erkannt, Überprüfung erforderlich)2 — Kritisch (verwundbare Version bestätigt, sofortiges Handeln erforderlich)=== Next.js Security Scanner ===
Target: /home/user/myapp
Date: 2026-04-04 12:00
CVE: CVE-2025-55182 (React2Shell, CVSS 10.0)
[Phase 1] Next.js version check
[CRITICAL] Next.js v15.2.4 is vulnerable to CVE-2025-55182 (React2Shell)
-> package.json: "next": "^15.2.4"
-> This version allows unauthenticated RCE via deserialization of Server Components
[Phase 2] React version check
[CRITICAL] React v19.1.0 is in the CVE-2025-55182 vulnerable list
[Phase 3] App Router / Server Components detection
[INFO] App Router detected (app/ directory exists)
[CRITICAL] Vulnerable Next.js + Server Components = active attack surface for React2Shell
...
=== Scan Summary ===
CRITICAL : 3
WARNING : 0
INFO : 2
CRITICAL issues found. Immediate action required.
=== Remediation (CVE-2025-55182) ===
1. Upgrade Next.js to a patched version:
npm install next@latest
...
Sofort upgraden:
npm install next@latest
npm install react@latest react-dom@latest
Weitere Informationen unter https://github.com/vercel/next.js/releases – dort die erste gepatchte Version in jeder Nebenversionsreihe prüfen.
Wenn ein Exploit vermutet wird:
ps aux | grep -E '\.sh|\.py'
crontab -l; cat /etc/cron*
ss -tnp | grep -E '144\.172|172\.86'
ls -la /tmp/ | grep '^\.'
144.172.102.88, 172.86.127.128, 144.172.112.136, 144.172.117.112bash scan.sh [target-directory]
Auslöseschlüsselwörter: "next.js security check", "CVE-2025-55182", "React2Shell", "Next.js vulnerability scan"
Siehe claude-code/SKILL.md für den Skill-Wrapper.
Dieses Tool wird ausschließlich zu defensiven Sicherheitszwecken bereitgestellt. Es führt nur lokale, schreibgeschützte Überprüfungen Ihrer eigenen Projektdateien durch. Es werden keine Netzwerkverbindungen hergestellt, keine Daten extern gesendet und keine Exploits ausgeführt.
Die Schwachstelleninformationen und IOC-Daten basieren auf öffentlich verfügbaren Quellen (NVD, Cisco Talos). Dieser Scanner kann Fehlalarme erzeugen oder bestimmte Angriffsvektoren übersehen. Er ersetzt keine professionellen Sicherheitsaudits, Penetrationstests oder Sicherheitspatches des Anbieters.
Nutzung auf eigene Gefahr. Die Autoren übernehmen keine Haftung für Schäden, die aus der Nutzung dieses Tools entstehen.
MIT — siehe LICENSE