Der teure Fehler: einen Patch für die gesamte Prüfung halten
React2Shell, CVE-2025-55182, wurde am 3. Dezember 2025 als Schwachstelle in React Server Components offengelegt, die eine entfernte Codeausführung ohne Authentifizierung ermöglicht. React nennt Lachlan Davidson als Entdecker. Das offizielle Advisory ordnet den Fehler als unsichere Deserialisierung ein. [1, 6]
Für Produktverantwortliche lautet die nützliche Frage: Kann der bereitgestellte Dienst eine externe Anfrage sicher in serverseitige Arbeit übersetzen? Dieser Artikel schlägt drei Prüfgrenzen vor: zulässige Werte, erlaubte Operationen und zulässiger Ressourcenverbrauch. Er ist eine redaktionelle Analyse der verlinkten öffentlichen Unterlagen, geprüft am 4. Oktober 2026, und behauptet weder eine eigene Entdeckung noch eine Reproduktion dieser Schwachstellen.
Betroffenheit am Deployment feststellen, nicht am Produktnamen
Erfassen Sie die RSC-Integration und die tatsächlich aufgelösten Pakete react-server-dom-webpack, react-server-dom-parcel oder react-server-dom-turbopack. Eine React-Anwendung ohne serverseitige Ausführung oder RSC-fähige Integration liegt außerhalb des ursprünglichen Advisories. Keine explizit geschriebene Server Function zu haben, beweist für sich allein nicht, dass ein RSC-Deployment unbetroffen ist. [1]
Dokumentieren Sie Produktionsimage oder Deployment-ID, Abhängigkeitsauflösung, Framework-Konfiguration und erreichbare Anfragehandler. Ein korrigierter Entwickler-Checkout belegt nicht, was ein altes Deployment, eine Preview-Umgebung oder ein Rollback-Image ausführt. Trennen Sie „Paket vorhanden“, „verwundbare Version vorhanden“ und „relevanter Ausführungspfad erreichbar“: Das sind drei verschiedene Aussagen, die jeweils Nachweise brauchen.
Grenze eins: Aus Bytes dürfen nur zulässige Werte entstehen
Deserialisierung bedeutet mehr als zu prüfen, ob eine Anfrage wie JSON aussieht. Ein Decoder kann Referenzen rekonstruieren, Typen interpretieren oder aufgeschobene Werte auflösen. Die Prüffrage lautet, welche Bedeutungen ein Angreifer den Server konstruieren lassen kann, bevor die Anwendung die Anfrage validiert. Verfolgen Sie diese Umwandlung in der tatsächlichen Framework-Integration, statt harmlose primitive Werte im Fachhandler vorauszusetzen.
Das folgende Modell ist eine Prüfhilfe, weder Reacts interner Aufrufgraph noch eine Exploit-Anleitung. Bestimmen Sie erlaubte Werttypen, Referenzbehandlung und Fehlerpfade. Prüfen Sie fehlerhafte und mehrdeutige Eingaben über dokumentierte Einstiegspunkte in einer isolierten Umgebung. Eine kleine abgewiesene Anfrage sollte keinen teilweise rekonstruierten Zustand hinterlassen, den eine andere Anfrage wiederverwenden kann. Das ist eine zu untersuchende Produktinvariante, keine Behauptung über diese CVEs.
HTTP input
-> [1] decode into permitted values
-> [2] authorize the requested operation
-> [3] execute within an explicit work budget
-> produce a permitted response
Review invariants:
malformed input -> bounded rejection
unauthorized operation -> no state change
excessive work -> bounded termination
error response -> no sensitive implementation dataGrenze drei: Gültige Eingaben können unvertretbaren Aufwand auslösen
CVE-2026-23864, offengelegt am 26. Januar 2026, betrifft weitere RSC-Denial-of-Service-Fälle. Die Maintainer beschreiben übermäßige CPU-Nutzung, Speichererschöpfung und Prozessabstürze. [3] React erklärt, dass diese Folgeprobleme die korrigierte React2Shell-Schwachstelle zur entfernten Codeausführung nicht wieder öffneten. Unterscheiden Sie die Sicherheitseigenschaften, die jeder Patch abdeckt. [2]
Ein Anfragengrößenlimit misst eingehende Bytes; es begrenzt nicht direkt die dadurch ausgelöste Arbeit. Prüfen Sie Referenzexpansion, wiederholte Auflösung, nachgelagerte Aufrufe und Abbruchverhalten, soweit diese Mechanismen vorkommen. Wählen Sie realistische Grenzen für CPU, Speicher, Parallelität und Abschlusszeit. Ein Timeout hilft nur, wenn die Arbeit tatsächlich stoppt. Verwenden Sie eine Testumgebung und vorab definierte Abbruchschwellen; einen Produktionsprozess absichtlich zu erschöpfen ist kein sinnvoller Abnahmetest.
Produktionsantwort und Inhalt des Bundles untersuchen
CVE-2025-55183 betrifft die Offenlegung von Quellcode in bestimmten Server-Function-Konfigurationen. Das Advisory beschreibt Risiken für fest im offengelegten Code hinterlegte Geheimnisse; es belegt keine allgemeine Offenlegung von Laufzeit-Umgebungsvariablen durch genau diesen Fehler. Bundler-Inlining kann beeinflussen, welcher Quellcode im Produktionsartefakt sichtbar ist. [4, 2]
Prüfen Sie Rückgabewerte, implizite Zeichenkettenkonvertierungen, Fehler und den kompilierten Funktionskörper. Nutzen Sie in einem eigenen Testbuild eine harmlose Markierung, um zu prüfen, ob Implementierungsdetails die Antwortgrenze überschreiten. Ein negatives Ergebnis für eine Markierung ist begrenzte Evidenz, kein Beweis für die Sicherheit aller Antwortpfade. Trennen Sie diese Prüfung von der Untersuchung eines RCE-Vorfalls, bei dem ein kompromittierter Prozess wesentlich breiteren Zugriff auf Geheimnisse haben kann.
Ein Grenzprotokoll erstellen, das Entwickler wiederholen können
Das folgende Protokoll verbindet Route und bereitgestellten Build mit Akteur, Eingabeklasse, erwartetem Ergebnis und beobachteten Nachweisen. Es ist eine vorgeschlagene Berichtsvorlage. Tragen Sie echte Messungen ein, statt einen theoretischen Angriff als bestätigten Befund auszugeben. Dokumentieren Sie bei jeder abgewiesenen Operation die ausbleibende Zustandsänderung; bei Ressourcentests das tatsächliche Arbeitsende und die durchgesetzten Grenzen.
Das Advisory vom Januar 2026 nennt 19.0.4, 19.1.5 und 19.2.4 als Korrekturen für seine RSC-Pakete. Dies sind historische Patchschwellen, keine Empfehlung, ein Deployment dauerhaft auf diesen Versionen festzuschreiben, und keine Aussage über das Ausbleiben späterer Advisories. [3] Wählen Sie eine aktuell unterstützte, korrigierte Framework-Version, bauen und deployen Sie neu und prüfen Sie die aufgelösten Pakete sowie das relevante Verhalten genau dieses Artefakts.
route_id | deployed_build | package_versions
principal | tenant | object | requested_operation
input_class | expected_result | observed_result
cpu_time | peak_memory | downstream_calls
state_before | state_after | reviewer | evidence_refWas eine hilfreiche Prüfung Produktverantwortlichen liefern sollte
Verlangen Sie eine klare Entscheidung zur Betroffenheit, die zugrunde liegenden Abhängigkeits- und Deployment-Nachweise sowie getrennte Ergebnisse zu Dekodierung, Berechtigungen, Ressourcenverbrauch und Antwortlecks. Jeder Befund sollte Voraussetzungen, betroffenen Ablauf, Reproduktion in der vereinbarten Umgebung, praktische Auswirkungen und Prüfkriterien benennen. Eine beeindruckende Liste von CVE-Kennungen ersetzt die Verbindung zu Ihrer Anwendung nicht.
Wählen Sie für einen gezielten Auftrag einen wichtigen Ablauf wie Rechnungsstellung, Kontoverwaltung oder Mandantendatenzugriff. Verbinden Sie Quellcodeprüfung mit vereinbarten Verhaltenstests, bewahren Sie das Grenzprotokoll auf und testen Sie das korrigierte Deployment erneut. Die Trennung von Bedeutung, Befugnis und Arbeitsbudget hilft auch bei Java-Deserialisierung oder nativen Parsern; deren Mechanismen und Schwachstellen müssen jedoch unabhängig untersucht werden.
Quellen
- [1] React: ursprüngliche React2Shell-Offenlegung
- [2] React: nachfolgende DoS- und Quellcode-Offenlegungen
- [3] React: Advisory zu CVE-2026-23864 und korrigierte Versionen
- [4] React: Advisory zur Quellcode-Offenlegung CVE-2025-55183
- [5] React: Transportdokumentation zu Server Functions
- [6] React: Advisory zu CVE-2025-55182 und Fehlerklassifikation
Diese Art von Prüfung besprechen
Leistungen