TL; DR
React2Shell (CVE-2025-55182) schafft einen kritischen RCE-Risiko über React Server Components (RSC) und Frameworks, die diese einbetten, einschließlich Next.jsWeil die Schwachstelle im Inneren liegt RSC Auf der Serialisierungs- und Deserialisierungsschicht können Angreifer eine speziell präparierte HTTP-Anfrage senden und diese auslösen. nicht authentifizierte Remote-Code-Ausführungselbst dann, wenn Teams Standard-Framework-Konfigurationen verwenden. Next.js Anwendungen sind dem höchsten Risiko ausgesetzt, da sie Daten entgegennehmen und verarbeiten. React Flight Nutzdaten werden standardmäßig über HTTP übertragen.
Der Fehler betrifft mehrere Versionen von React-ServerpaketeAngreifer benötigen keine spezielle Anwendungslogik, um diese Schwachstelle auszunutzen. Sicherheitsforscher bestätigen eine nahezu hundertprozentige Zuverlässigkeit, und erste Scans zeigen, dass viele Cloud-Umgebungen anfällig sind. Next.js Instanzen. Die Teams müssen sofort patchen. und ihr gesamtes Ökosystem zu validieren, um die React2Shell (CVE-2025-55182) RCE-Risiko.
Eine kritische Sicherheitslücke, die am 29. November über Metas Bug-Bounty-Programm gemeldet wurde, hat im gesamten JavaScript-Ökosystem dringende Reaktionen ausgelöst.
Vorgesehen CVE-2025-55182, die am 3. Dezember veröffentlicht wurde und nun als bezeichnet wird React2Shell ist eine Sicherheitslücke mit maximalem Schweregrad, die Auswirkungen hat React Server-Komponenten sowie Frameworks, die diese integrieren. Ursprünglich wurde eine separate Sicherheitslücke in Next.js (CVE-2025-66478) identifiziert, die jedoch später vom NVD als Duplikat in den primären React-CVE-Eintrag integriert wurde.
Das zugrundeliegende Problem ist die unsichere Verarbeitung serialisierter RSC-Nutzdaten, die durch eine HTTP-Anfrage ausgelöst werden können. Dies ermöglicht es Angreifern, manipulierte HTTP-Anfragen zu senden, die dazu führen, dass beliebiger JavaScript-Code auf dem Server ausgeführt wird. deserialisiert von React.
CVE-2025-55182 Übersicht
React-Serverkomponenten sind tief in moderne Frameworks integriert und in vielen Fällen standardmäßig aktiviert. Daher können Anwendungen anfällig für … sein. React2Shell (CVE-2025-55182) Selbst wenn sie nie explizit einen Serverfunktionsendpunkt definieren, ist die RSC-Implementierung dennoch vorhanden, und das allein genügt, um anfällige Codepfade zu aktivieren und eine erhebliche Sicherheitslücke zu schaffen. RCE-Risiko.
Der Fehler rührt von der Art und Weise her, wie die React Flight-Protokolll verarbeitet bestimmte strukturierte Nutzdaten. Ältere Versionen versuchten, die in den Nutzdaten enthaltenen Objektpfade zu durchlaufen, ohne die Gültigkeit oder Erwartung der Struktur zu überprüfen. Ein Angreifer konnte diesen Prozess manipulieren und letztendlich Code auf dem Server ausführen. Es sind weder Authentifizierung noch spezielle Konfigurationen oder anwendungsspezifische Logik erforderlich. Da das Problem bereits in Standardkonfigurationen auftritt, standard Die Bereitstellung erfolgt ohne dass besondere Bedingungen erforderlich sind.
Ausnutzung liegt vor, wenn Angreifer bösartige HTTP-POST-Anfragen senden, die die „vm.runInThisContextDer Mechanismus wird durch Serveraktionen ausgenutzt. Während React den anfälligen Endpunkt nicht direkt offenlegt, tut Next.js dies und schafft so einen echten Remote-Angriffsvektor.
Next.js akzeptiert Flight-Payloads von beliebigen Anfragen, verarbeitet sie ohne ordnungsgemäße Validierung und übergibt sie an den Deserialisierer von React. Das System behandelt diese externen Eingaben als vertrauenswürdig, wodurch Angreifer Zugriff auf die Datenbank erhalten. Remote-Code-Ausführung über öffentlich zugängliche Endpunkte mit vollen Node.js-Prozessrechten auf dem Zielserver.
Die Schwere der Situation erhöht sich erheblich, da Standardkonfigurationen weiterhin anfällig sind für React2Shell (CVE-2025-55182) und das Ergebnis RCE-Risikoherunterzuladen. Ein standard Die Next.js-Anwendung, die Sie erstellen mit create-next-app Die Sicherheitslücke ist ohne Anpassungen am Code oder Konfigurationsänderungen ausnutzbar. Sicherheitsforscher bestätigen eine nahezu hundertprozentige Ausnutzbarkeit und berichten, dass in 39 % der Cloud-Umgebungen anfällige Instanzen laufen, während in 44 % aller Umgebungen öffentlich zugängliche Next.js-Anwendungen betroffen sind. React2Shell.
Grundlagen der Nutzung von React2Shell
Die anfälligen Versionen erstrecken sich über mehrere Releases:
| Komponente | Betroffene Versionen |
|---|---|
| react-server-dom-webpack | 19.0, 19.1.0, 19.1.1, 19.2.0 |
| react-server-dom-parcel | 19.0, 19.1.0, 19.1.1, 19.2.0 |
| react-server-dom-turbopack | 19.0, 19.1.0, 19.1.1, 19.2.0 |
Da viele Frameworks RSC-Unterstützung im Kern integrieren, übernehmen Anwendungen häufig unwissentlich den anfälligen Code. Jedes Framework oder jeder Bundler, der diese Pakete ausliefert, kann die Anwendung React2Shell (CVE-2025-55182) und dem damit verbundenen Risiko der Remote Code Execution (RCE) aussetzen. Dies umfasst:
- Next.js (App-Router)
- React Router RSC-Vorschau
- Vite RSC-Plugin
- Parcel RSC-Plugin
- Redwood SDK
- Waku
- Ausstellung
Next.js ist besonders betroffen, da es standardmäßig RSC-bezogene Endpunkte über HTTP verwendet. Versionen, die mit der Präfixnummer beginnen, sind betroffen. 14.3.0 Canary-Builds, zusammen mit den meisten 15.x und früh 16.x Die veröffentlichten Versionen enthalten die anfällige Implementierung. Jeder, der eine Canary-Version verwendet, sollte dies beachten. 14.3.0-canary.77 oder später sollte zurück zu stabile Version 14.x Verzweige den Zweig, bis eine gepatchte Canary-Version veröffentlicht wird.
Gepatchte Next.js-Versionen das:
| Komponente | Gepatchte Versionen |
|---|---|
| Next.js | 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7 |
Öffentliche PoCs und zuverlässige Detektion
Nach der Veröffentlichung der Sicherheitslücke kursierten zahlreiche vermeintliche Machbarkeitsstudien. Viele davon waren entweder ungenau oder basierten auf fehlerhaften Annahmen. Der ursprüngliche Autor der Sicherheitslücke, Lachlan Davidson, bestätigte dies öffentlich am [Datum einfügen]. react2shell dass die auf GitHub kursierenden PoCs nicht mit dem Exploit übereinstimmen, der privat mit den React/Next.js-Maintainern geteilt und von ihm bereitgestellt wurde eigener PoC.
Ein Hauptproblem der frühen öffentlichen Versuche besteht darin, dass sie nicht erkennen, dass Ausbeutung erfolgreich ist gegen standard Next.js-Bereitstellungen, ohne dass spezifische Anwendungslogik oder serverseitige Funktionen erforderlich sind.
Sicherheitsforscher verschiedener Organisationen haben betont, dass die Erkennung der Schwachstelle mehr erfordert, als lediglich festzustellen, ob RSC vorhanden ist. Das Team von Assetnote veröffentlichte eine zuverlässiges Detektionsverfahren und einem Scanner Metasploit wird in Kürze eine solche Funktion bieten, die das Problem ohne Verwendung von Exploits bestätigen kann. verfügbarer Exploit auch für diese Sicherheitslücke.
Der Erkennungsansatz nutzt die Art und Weise, wie React Server Objekt-Eigenschaftsreferenzen mit Doppelpunkten als Trennzeichen innerhalb des Codes verarbeitet. ReactFlightClientConfigBundlerWebpack.js/requireModule() Funktion. Wenn anfällige Versionen eine speziell strukturierte, mehrteilige Nutzlast verarbeiten, die versucht, nicht existierende, verschachtelte Objektpfade zu durchlaufen, lösen sie vorhersehbare Fehlermeldungen aus. Eine Diagnoseanfrage sendet ein Referenzmuster wie beispielsweise `$1:a:a` Wird ein leeres Objekt verwendet, versuchen anfällige Implementierungen, dies als Zugriff auf eine verschachtelte Eigenschaft mit einem undefinierten Wert zu interpretieren, was zu einer Ausnahme führt. Der Server sendet den Statuscode 500 mit einem charakteristischen Fehlerkennzeichen im Antworttext zurück.
export function requireModule<T>(metadata: ClientReference<T>): T {
let moduleExports = __webpack_require__(metadata[ID]);
if (isAsyncImport(metadata)) {
if (typeof moduleExports.then !== 'function') {
// This wasn't a promise after all.
} else if (moduleExports.status === 'fulfilled') {
// This Promise should've been instrumented by preloadModule.
moduleExports = moduleExports.value;
} else {
throw moduleExports.reason;
}
}
if (metadata[NAME] === '*') {
// This is a placeholder value that represents that the caller imported this
// as a CommonJS module as is.
return moduleExports;
}
if (metadata[NAME] === '') {
// This is a placeholder value that represents that the caller accessed the
// default property of this if it was an ESM interop module.
return moduleExports.__esModule ? moduleExports.default : moduleExports;
}
return moduleExports[metadata[NAME]];
}
Sofortmaßnahmen für Organisationen, die mit React2Shell (CVE-2025-55182) und dem RCE-Risiko konfrontiert sind
Führen Sie eine umfassende Überprüfung Ihrer Codebasis und Ihrer bereitgestellten Anwendungen durch. Um anfällige Paketversionen zu finden, achten Sie besonders auf direkte Abhängigkeiten von React-Serverpaketen, RSC-Implementierungen auf Framework-Ebene (Next.js, Waku, Redwood usw.), Anwendungen, die mit `create-next-app` oder ähnlichen Gerüstbausteinen erstellt wurden, sowie auf containerisierte Anwendungen, die möglicherweise veraltete Basis-Images enthalten.
Software Composition Analysis (SCA) Werkzeuge wie Xygenis SCA kann automatisch betroffene Abhängigkeiten in Ihrem gesamten Softwarebestand ermitteln.
Patch sofort:
Aktualisieren Sie auf gepatchte Versionen von Frameworks wie React (19.0.1, 19.1.2, 19.2.1), Next.js (15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7) und allen Framework-Paketen, die RSC enthalten. Diese Aktualisierungen führen eine strenge Validierung der RSC-Payload-Verarbeitung ein und verhindern die unsichere Dereferenzierung von Eigenschaften, die eine Ausnutzung von Sicherheitslücken ermöglicht.
Automatisierte Sanierungswerkzeuge, wie zum Beispiel Xygenis automatische Fehlerbehebungsfunktion, kann den Prozess bei großen Codebasen beschleunigen.
Vorübergehende WAF-Schutzmaßnahmen implementieren:
Während Patches in Ihrer Bereitstellung verteilt werden pipelineAktivieren Sie die Regeln der Web Application Firewall für sofortigen Schutz. Große Cloud-Anbieter haben Notfall-Regelsätze veröffentlicht. CloudflareAutomatischer Schutz für alle Ebenen, wenn React-Traffic über einen Proxy geleitet wird, sowie AWS, Akamai, Fastly, Google Cloud Es stehen ähnliche Schutzregeln zur Verfügung. Aktivieren Sie diese Kontrollen sofort, um während der Übergangszeit eine Schutzebene zu schaffen.
Überwachung auf verdächtigen HTTP-Datenverkehr:
Konfigurieren Sie die Protokollierung und Alarmierung für Indikatoren von Ausnutzungsversuchen: Fehlerhafte oder unerwartete Nutzdaten des RSC Flight-Protokolls, ungewöhnliche Muster von 500-Fehlern an RSC-Endpunkten, POST-Anfragen mit verdächtigen `Next-Action`- oder `Next-Router-State-Tree`-Headern, wiederholte Anfragen an `/_next/`-Pfade mit mehrteiligen Nutzdaten
Überprüfen Sie Ihre Software-Stückliste:
Viele Frameworks bündeln RSC-Abhängigkeiten transparent, sodass sie bei oberflächlichen Abhängigkeitsprüfungen nicht sichtbar sind. Untersuchen Sie Ihre vollständige Abhängigkeitsliste. SBOM um sicherzustellen, dass: Keine transitiven Abhängigkeiten von anfälligen React-Serverpaketen mehr bestehen und Framework-Updates nicht versehentlich ältere RSC-Implementierungen eingeführt haben.
Abschließende Gedanken
React2Shell zählt zu den schwerwiegendsten Sicherheitslücken im JavaScript-Ökosystem der letzten Jahre, nicht etwa weil der Exploit komplex ist, sondern weil RSC so tief in die heutigen Tools integriert ist. Da nun Patches für das gesamte Ökosystem verfügbar sind, müssen Teams die Aktualisierungen so schnell wie möglich in die Produktion einspielen.
Wenn Ihre Anwendung die Serverfunktionen von React nutzt, sei es direkt oder indirekt, müssen Sie diese Sicherheitslücke als eine Behebung mit höchster Priorität behandeln.





