SOC Prime Bias: Kritisch

05 Dez. 2025 16:35

CVE-2025-55182 und CVE-2025-66478: Hochpräzise Erkennung für RSC/Next.js RCE

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Folgen
CVE-2025-55182 und CVE-2025-66478: Hochpräzise Erkennung für RSC/Next.js RCE
shield icon

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 mich

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 denE{"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