CVE-2025-55182 und CVE-2025-66478 („React2Shell“) – Alles, was Sie wissen müssen

React2Shell CVE-2025-55182 vulnerability in React Server Components

JFrog verfolgt die Entwicklungen rund um React2Shell weiterhin aktiv und stellt laufend Updates unter research.jfrog.com bereit. 


Was ist passiert?

Die Maintainer von React haben eine scherwiegende Sicherheitslücke veröffentlicht CVE-2025-55182 (bzw. die korrespondierende CVE-2025-66478 in Next.js). Die Schwachstelle wurde vom ursprünglichen Researcher „React2Shell“ genannt, da sie die Ausführung beliebigen Codes durch (möglicherweise nicht authentifizierte) entfernte Angreifer ermöglicht.

Ein Angreifer kann remote eine speziell gestaltete HTTP-Anfrage an einen beliebigen React Server Function Endpoint senden, die – sobald sie von React deserialisiert wird – zur Ausführung beliebigen Codes auf dem Server führt. Die Erfolgsrate der Ausnutzung liegt Berichten zufolge bei Standardkonfigurationen bei nahezu 100 %.

Derzeit existieren keine echten Proof-of-Concept-Exploits für diese Schwachstellen. Einige PoCs wurden zwar auf GitHub veröffentlicht (besonders erwähnenswert: dieser hier), doch alle bisher bekannten Proof-of-Concepts haben sich als Fake herausgestellt.
Wir raten Usern dringend davon ab, nicht-vertrauenswürdigen PoC-Code auszuführen – solche Projekte enthalten erfahrungsgemäß häufig bösartigen Code.

Wer ist von React2Shell betroffen?

React-Server, die React Server Function Endpoints verwenden

Alle React-Server, die Server Function Endpoints nutzen sind nach aktuellem Wissenstand betroffen

Ob eine React-Server-Anwendung diese anfällige Funktionalität nutzt, lässt sich überprüfen, indem man nach der Direktive use server; in beliebigen Quellcodedateien der Anwendung sucht. Diese Direktive weist darauf hin, dass eine Server Function definiert ist – und damit potenziell verwundbar.

Beispiel –

async function requestUsername(formData) {
  'use server';
  const username = formData.get('username');
  // ...
}

export default function App() {
  return (
    <form action={requestUsername}>
      <input type="text" name="username" />
      <button type="submit">Request</button>
    </form>
  );
}

React-Server, die React Server Components unterstützen

Laut der Stellungnahme des React-Teams gilt: „Selbst wenn Ihre Anwendung keine React Server Function Endpoints implementiert, kann sie dennoch verwundbar sein, wenn sie React Server Components unterstützt.“

Welche konkreten Bedingungen eine Ausnutzung von CVE-2025-55182 ermöglichen, wenn React Server Components supported werden, ohne dass Server Function Endpoints verwendet werden, ist derzeit noch unklar.

Wenn Ihre Anwendung in irgendeiner Weise React Server Components unterstützt, sollten Sie dringend die betroffenen Komponenten auf eine der gepatchten Versionen aktualisieren (siehe Tabelle unten).

Next.js-Webanwendungen, die den App Router verwenden

Die wahrscheinlichste Angriffsfläche besteht bei Next.js-Webanwendungen (CVE-2025-66478), da diese in der Standardkonfiguration verwundbar sind.

Wenn Sie zum Beispiel eine neue Next.js-App mit dem Standardbefehl create-next-app erstellen und dabei die empfohlenen Einstellungen übernehmen, wird eine verwundbare Anwendung erzeugt, weil durch diese der Next.js App Router aktiviert wird, der wiederum den Zugriff auf die anfälligen React Server Function Endpoints erlaubt.Solche Anwendungen enthalten ein app-Verzeichnis – ein klares Indiz dafür, dass der anfällige App Router verwendet wird.

Verwundbare Pakete und gepatchte Versionen

Vulnerable Components Vulnerable Versions Fixed Versions
react-server-dom-webpack 19.0.0
19.1.0 – 19.1.1
19.2.0
19.0.1
19.1.2
19.2.1
react-server-dom-parcel 19.0.0
19.1.0 – 19.1.1
19.2.0
19.0.1
19.1.2
19.2.1
react-server-dom-turbopack 19.0.0
19.1.0 – 19.1.1
19.2.0
19.0.1
19.1.2
19.2.1
Next.js 15.0.0 – 15.0.4
15.1.0 – 15.1.8
15.2.0 – 15.2.5
15.3.0 – 15.3.5
15.4.0 – 15.4.7
15.5.0 – 15.5.6
16.0.0 – 16.0.6
15.0.5
15.1.9
15.2.6
15.3.6
15.4.8
15.5.7
16.0.7
Next.js 14.3.0-canary.77 and later canary versions Downgrade to the latest stable 14.x release by running npm install next@14
Other Frameworks Any framework/library bundling the vulnerable React RSC implementation (e.g., Vite RSC plugin, Parcel RSC plugin, React Router RSC preview, RedwoodSDK, Waku)

Wie lässt sich React2Shell entschärfen?

  • Der einzige sichere Weg, die Schwachstellen CVE-2025-55182 und  CVE-2025-66478 zu beheben, ist das Upgrade der betroffenen Pakete auf die in der Tabelle oben genannten Versionen oder eine neuere Version.

Wenn ein sofortiges Upgrade nicht möglich ist, können die folgenden Workarounds die Ausnutzbarkeit der Vulnerability verhindern –

  • Für Next.js-Apps: Falls App Router nicht stark genutzt wird, kann die Webanwendung auf den Pages Router zurück migriert werden. Die Umstellung erklärt der Next.js App Router Migration Guide .

Wie kann ich React2Shell tracken?

  • Über die JFrog Plattform
    • Die Vulnerabilities werden in Xray unter XRAY-900398 & XRAY-900476 geführt.
    • Der Xray  Katalog erkennt automatisch alle verwundbaren React- und Next.js-Pakete in Ihrer Codebasis und liefert priorisierte Patch-Empfehlungen basierend auf verfügbarerVersionierung.
    • JFrog Advanced Security Nutzer finden Ergebnisse der Kontext Analyse für  CVE-2025-55182 & CVE-2025-66478 –
  • Bei Verwendung eines Open-Source-Detektors – https://github.com/assetnote/react2shell-scanner Der Scanner sendet eine speziell gestaltete multipart-POST-Anfrage, die in verwundbaren Versionen der React Server Components eine bestimmte Fehlersituation auslöst. Verwundbare Hosts antworten mit einem HTTP-Statuscode 500 und enthalten E{“digest” im Response-Body. Dieser Check unterscheidet verwundbare Hosts von solchen, die lediglich React Server Components verwenden.”