FlawOpen

flawopen.com/Teardowns/cve-2025-55182-react-server-components-rce

● CVE-2025-55182 · CVSS 10.0[1] · Kritisch
Sicherheitsforschung · FlawOpen

CVE-2025-55182: React2Shell-RCE in RSC

CVE-2025-55182 ermöglicht nicht authentifizierte Remote-Codeausführung beim Decodieren von React-Server-Components-(RSC)-Payloads. React bestätigte den Decoderfehler; Google Threat Intelligence dokumentierte Kampagnen mit Downloadern, Backdoors und Minern.[1], [4], [5]

💡 Einfache Erklärung (ELI5)

Stellen Sie sich eine Rezeption vor, die ein Verzeichnis freigegebener Dienste prüft. Eine fehlerhafte Suche behandelt einen vom Verzeichnisvorlage geerbten Namen so, als hätte der Verantwortliche ihn eingetragen. Reacts Patch prüft, ob ein angeforderter Modulexport zum Modul selbst gehört; der öffentliche Hinweis legt den vollständigen Exploit-Ablauf nicht offen. Aktualisieren Sie betroffene Pakete.[1]

Kernkonzepte & Begriffe

React Server Components (RSC)
React Server Components: React-Protokoll und Pakete für Server-Rendering und Flight-Datenaustausch.[1]

Framework-Zuordnungen

Ursachenanalyse

React bestätigt RCE durch einen Fehler beim Decodieren von Payloads an React-Server-Function-Endpunkten; RSC-Unterstützung allein konnte genügen. Das erste Advisory hielt Details zurück. Der öffentliche Upstream-Patch prüft in requireModule() eigene Eigenschaften und behandelt Multipart-Fehler. Der Ausschnitt zeigt eine konkrete Änderung, nicht den gesamten Decoderfehler oder die vollständige Angriffskette.[1], [2]

Betroffene React2Shell-Versionen und Bereitstellungsumfang

Komponente oder BereitstellungBewertung des UmfangsBehebungsmaßnahme
react-server-dom-webpack, react-server-dom-parcel oder react-server-dom-turbopack in Version 19.0, 19.1.0, 19.1.1 oder 19.2.0.Serverseitige RSC-Unterstützung kann eine Anwendung auch ohne ausdrücklich definierten Server-Function-Endpunkt exponieren; die Servergrenze muss erreichbar sein.Aktualisieren Sie die Paketlinie je nach Fall auf 19.0.1, 19.1.2 oder 19.2.1 oder höher. Erstellen Sie das Serverartefakt neu und stellen Sie es erneut bereit.
Next.js App Router auf betroffenen 15.x/16.x-Versionen oder ab 14.3.0-canary.77 in nachfolgenden Canary-Versionen.Betroffene Framework-Integrationen bündeln die verwundbaren RSC-Pakete. Gehen Sie nicht allein deshalb von Sicherheit aus, weil die Anwendung keinen eigenen Server-Function-Endpunkt definiert.Verwenden Sie die korrigierte Version der passenden Linie: 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7 oder 16.0.7 oder höher. Dies sind die im zitierten Hinweis dokumentierten Mindestversionen; prüfen Sie vor dem Rollout den aktuellen Herstellerzweig.
Reine Client-React-Anwendung ohne serverseitige RSC-Unterstützung.Außerhalb des dokumentierten CVE-Umfangs, da keine serverseitige Decodergrenze vorhanden ist.Für diese Konfiguration ist kein React2Shell-Serverpatch erforderlich. Prüfen Sie den Umfang neu, wenn RSC oder Server Components eingeführt werden.
Bereitstellung als gepatcht gemeldet.Eine Manifestversion belegt nicht, dass jede laufende Region, Vorschau, jeder Worker oder Container das korrigierte Artefakt verwendet.Prüfen Sie Image-Digests und aufgelöste Paketversionen in Produktion, Vorschau und Workern; untersuchen Sie frühere Expositionszeiträume.
Next.js-Versionszweige laut React-Update vom 2026-01-26React nennt in späteren Empfehlungen neuere Sicherheitsversionen; dies sind nicht die Mindestversionen, die CVE-2025-66478 zuerst behoben haben. Weitere RSC-Hinweise und unterstützte Zweige können das Updateziel ändern.Für die zugehörigen RSC-Hinweise CVE-2025-55183, CVE-2025-55184, CVE-2025-67779 und CVE-2026-23864 nannte React die korrigierten Versionen 19.0.4, 19.1.5 und 19.2.4. Die Next.js-Empfehlungen vom 2026-01-26 lauteten: 14.2.35 für stabile Versionen 13.3.x–14.x; 15.0.8 für 15.0.x; 15.1.12 für 15.1.x; 15.2.9 für 15.2.x; 15.3.9 für 15.3.x; 15.4.11 für 15.4.x; 15.5.10 für 15.5.x; 16.0.11 für 16.0.x; und 16.1.5 für 16.1.x. Dies sind spätere Empfehlungen für verwandte Probleme, nicht die minimalen Next.js-Versionen zur Behebung von CVE-2025-66478. Prüfen Sie vor dem Rollout den neuesten Herstellerhinweis und den unterstützten Versionszweig.
CVE-2026-23869 — RSC-Denial-of-Service (2026-04-08).React zufolge können speziell gestaltete HTTP-Anfragen an Server-Function-Endpunkte bis zu einer Minute übermäßig viel CPU verbrauchen, bevor ein abfangbarer Fehler entsteht. Betroffen sind react-server-dom-*-Paketversionen bis 19.0.4, 19.1.5 und 19.2.4.React nennt 19.0.5, 19.1.6 und 19.2.5 als korrigierte Versionen der jeweiligen Zweige.
CVE-2026-23870 — RSC-Denial-of-Service (2026-05-06).React zufolge können speziell gestaltete HTTP-Anfragen Out-of-Memory-Ausnahmen oder übermäßige CPU-Auslastung verursachen. Betroffen sind react-server-dom-*-Paketversionen bis 19.0.5, 19.1.6 und 19.2.5.React nennt 19.0.6, 19.1.7 und 19.2.6 als korrigierte Versionen der jeweiligen Zweige.
CVE-2026-44907 — Denial-of-Service in Server Functions (2026-07-21).React zufolge können speziell gestaltete HTTP-Anfragen Out-of-Memory-Ausnahmen oder übermäßige CPU-Auslastung verursachen. Betroffen sind react-server-dom-*-Paketversionen bis 19.0.7, 19.1.8 und 19.2.7.React nennt 19.0.8, 19.1.9 und 19.2.8 als korrigierte Versionen der jeweiligen Zweige.

Schritt-für-Schritt Angriffsablauf

Schritt 1

Eine erreichbare RSC-Grenze erhält eine nicht authentifizierte Anfrage

Laut React konnte bereits RSC-Unterstützung genügen, auch ohne eigenen Server-Function-Endpunkt. React-Apps ohne Server sind von dieser CVE nicht betroffen.[1], [4]

Schritt 2

Eine präparierte Anfrage erreicht den verwundbaren Decoder

Der Anbieter beschreibt einen Fehler beim Decodieren von Server-Function-Anfragen. Eine vollständige Exploit-Anleitung blieb aus; leiten Sie keine undokumentierten Details ab.[1], [2]

Schritt 3

Code läuft mit den Rechten des Webprozesses

Laut Advisory läuft Code mit den Rechten des betroffenen Serverprozesses. Die Wirkung hängt vom Dienstkonto und erreichbaren Geheimnissen und Diensten ab.[1], [4]

Schritt 4

Google GTIG beobachtete Tunneller, Downloader, Backdoors und Miner

GTIG beobachtete Kampagnen mit Tunnellern, Downloadern, Backdoors und Minern. Das bestätigt Ausnutzung, nicht die Kompromittierung jedes verwundbaren Hosts.[5], [6]

Quellcode: Verwundbar vs. Sicher

Dieser genaue Ausschnitt des Upstream-Patches gibt nur einen eigenen Modulexport zurück; er reproduziert weder den gesamten Decoderfehler noch ist er eine eigenständige Korrektur. Aktualisieren Sie React Server Components oder das betroffene Framework.[2], [1]

Quelltextauszug: Methode requireModule() im React-Parcel-Client

VERWUNDBARE IMPLEMENTIERUNG
export function requireModule<T>(metadata: ClientReference<T>): T {
  const moduleExports = parcelRequire(metadata[ID /* module id */]);
  return moduleExports[metadata[NAME]];
}
GEHÄRTETER SICHERHEITS-PATCH
export function requireModule<T>(metadata: ClientReference<T>): T {
  const moduleExports = parcelRequire(metadata[ID /* module id */]);
  if (hasOwnProperty.call(moduleExports, metadata[NAME])) {
    return moduleExports[metadata[NAME]];
  }
  return (undefined: any);
}

Checkliste für Engineering & Systemsicherheit

Quellen