CVE-2025-55182 und CVE-2025-66478: Hochpräzise Erkennung für RSC/Next.js RCE
Detection stack
- AIDR
- Alert
- ETL
- Query
Zusammenfassung
Eine Schwachstelle für Remote-Code-Ausführung betrifft Next.js-Anwendungen, die React Server Components verwenden. Das Problem kann ohne vorherigen Zugriff durch das Senden einer speziell gestalteten multipart HTTP-Anfrage ausgelöst werden. Obwohl mehrere öffentliche Proof-of-Concept-Exploits existieren, sind viele unzuverlässig oder falsch. Der Artikel stellt eine hochpräzise Erkennungstechnik vor, die sich auf eine charakteristische Server-Fehlerantwort stützt.
Untersuchung
Die Forscher untersuchten die Parsing-Logik von React Server Component und stellten fest, dass ein durch Doppelpunkte begrenzter Eigenschaftsverweis einen 500-Fehler erzeugen kann, wenn das anvisierte Objekt fehlt. Sie erstellten dann ein multipart Payload, das diesen Zustand zuverlässig auslöst, und bestätigten ein wiederholbares Antwortmuster. Die vorgeschlagene Erkennungsregel kennzeichnet HTTP 500-Antworten, die das charakteristische E{"digest" Fragment im Body enthalten.
Minderung
Minderungsmaßnahmen umfassen das Upgrade der betroffenen Next.js-Versionen auf Versionen, die zusätzliche Schutzmaßnahmen um die Doppelpunkt-Notation herum integrieren. Organisationen sollten WAF-Regeln bereitstellen, um die bösartige multipart Struktur zu blockieren und sicherzustellen, dass alle eingehenden Anforderungen, die React Server Components betreffen, validiert und bereinigt werden.
Reaktion
Sicherheitsteams sollten exponierte Webanwendungen nach dem beschriebenen Anfrage-Antwort-Signatur scannen und Fixes für anfällige Next.js-Instanzen priorisieren. Wenn Ausnutzung vermutet wird, sollte der betroffene Server isoliert, Protokolle für Beweise von Code-Ausführung gesichert und überprüft, und die entsprechenden Patches unverzüglich angewendet werden.
Angriffsfluss
Wir aktualisieren diesen Teil noch. Melden Sie sich an, um benachrichtigt zu werden.
Benachrichtige michErkennungen
Mögliche Command-and-Control-Aktivität durch Domain-Kommunikation von Fernzugriffssoftware…
Ansehen
Möglicher CVE-2025-55182 (Unauthentifizierte RCE in React Server Components) Ausnutzungsversuch (via Proxy)
Ansehen
Möglicher CVE-2025-55182 (Unauthentifizierte RCE in React Server Components) Ausnutzungsversuch (via Webserver)
Ansehen
Simulation Ausführung
Voraussetzung: Der Telemetrie- & Basislinien-Pre-Flight-Check muss bestanden haben.
Rationale: Dieser Abschnitt beschreibt die präzise Ausführung der gegnerischen Technik (TTP), die entwickelt wurde, um die Erkennungsregel auszulösen. Die Befehle und Erzählung MÜSSEN direkt die identifizierten TTPs widerspiegeln und darauf abzielen, die genaue Telemetrie zu erzeugen, die von der Erkennungslogik erwartet wird. Abstrakte oder nicht zusammenhängende Beispiele führen zu Fehlinterpretationen.
-
Angriffserzählung & Befehle:
Der Angreifer, der erkannt hat, dass das Ziel eine anfällige Version von Next.js betreibt, erstellt eine bösartige multipart Anfrage, die einen legitimen Asset-Upload-Fluss nachahmt. Indem er denUser-AgentaufAssetnote/1.0.0setzt und die internen Next.js-HeaderNext-Action: xundX-Nextjs-Request-Id: b5dce965injectiert, löst das Payload die serverseitige Komponente aus, die nicht vertrauenswürdige Daten deserialisiert und eine Laufzeitausnahme verursacht. Der Server antwortet mit HTTP 500 und enthält den serialisierten Digest (E{"digest), auf den die Erkennungsregel achtet. -
Regressionstest-Skript:
#!/usr/bin/env bash # # Exploitsimulation für die Next.js RCE-Erkennungsregel (T1595.002) # Erzeugt das exakte Paketmuster, das die Sigma-Regel erwartet. # TARGET="http://127.0.0.1" ENDPOINT="/" USER_AGENT="Assetnote/1.0.0" BOUNDARY="----WebKitFormBoundary$(date +%s)" # Minimaler multipart Körper; Inhalt ist für die Erkennung irrelevant. read -r -d '' PAYLOAD <<EOF --$BOUNDARY Content-Disposition: form-data; name="file"; filename="exploit.txt" Content-Type: text/plain exploit --$BOUNDARY-- EOF curl -s -o /dev/null -w "%{http_code}n" -X POST "${TARGET}${ENDPOINT}" -H "User-Agent: ${USER_AGENT}" -H "Next-Action: x" -H "X-Nextjs-Request-Id: b5dce965" -H "Content-Type: multipart/form-data; boundary=${BOUNDARY}" --data-binary "$PAYLOAD"Führen Sie das Skript auf einem Rechner aus, der den Ziel-Webserver erreichen kann. Der erwartete HTTP-Status ist500und das Fehlerprotokoll des Servers enthält den
E{"digest-String. -
Aufräumbefehle:
# Keine persistente Änderungen am Ziel; lokal einfach temporäre Dateien entfernen rm -f /tmp/exploit_payload.tmp 2>/dev/null || true