Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2025-55182-analysis — Kurze Einführung in die Analyse der RCE-Sicherheitslücke in React Server Components. | Kitploit
Tools/GitHubGitHub/airis101/cve-2025-55182-analysis
SchwachstellenanalyseCode-AnalyseExploitationWebanwendungs-ExploitationPapers & ForschungLernen & Bildung
GitHubairis101/cve-2025-55182-analysis

CVE-2025-55182-analysis

Kurze Einführung in die Analyse der RCE-Sicherheitslücke in React Server Components.

Repository anzeigen
1vor 5 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

1. Schwachstellenübersicht

In den letzten Tagen wurde eine Deserialisierungs-RCE-Schwachstelle in React breit diskutiert. Die offizielle CVSS-Bewertung beträgt volle 10.0 Punkte, gleichauf mit dem damaligen Log4j. Kurz darauf verbreiteten sich Gerüchte, es handele sich um das Log4j des modernen Frontends, was bei vielen Entwicklern in Unternehmen Panik auslöste. So wachten alle auf und begannen, Dokumentationen zu durchforsten und Patches einzuspielen... Gleichzeitig gab es im Internet auch viele kritische Stimmen. Einige Tests zeigten, dass die Schwachstelle nicht so schwerwiegend ist wie behauptet; im Gegenteil, die Ausnutzung erfordert bestimmte Bedingungen. Daher beschloss ich, mir Zeit zu nehmen und diese Schwachstelle eingehend zu untersuchen.

1.1 Schwachstelleninformationen

  • CVE-ID: CVE-2025-55182
  • CVSS-Score: 10.0 (Kritisch)
  • Schwachstellentyp: Prototype Pollution → Remote Code Execution
  • Betroffene Versionen: react-server-dom-webpack < 19.2.0, react-server-dom-turbopack < 19.2.0
  • Auswirkung: Anwendungen, die React Server Components verwenden

2. Analyse der Schwachstellenursache

2.1 Grundursache der Schwachstelle

Die Ursache dieser Schwachstelle ist wie folgt: In [email protected] ist die Schlüsselfunktion zur serverseitigen Verarbeitung von Server Actions requireModule (Pseudocode):

root@kitploit:~
function requireModule(metadata) {
  var moduleExports = __webpack_require__(metadata[0]);
  // ...
  return "*" === metadata[2]
    ? moduleExports
    : "" === metadata[2]
      ? moduleExports.__esModule
        ? moduleExports.default
        : moduleExports
      : moduleExports[metadata[2]];  // ← 漏洞点
}

2.2 Kernproblem der Schwachstelle

Der Kern der Schwachstelle liegt im Teil moduleExports[metadata[2]]. Dieser Teil validiert metadata[2] nicht, sodass ein Angreifer nicht nur auf die eigenen Exporteigenschaften des Moduls, sondern auch auf Eigenschaften der Prototyp-Kette (wie constructor, __proto__ usw.) zugreifen kann. Nachdem der Angreifer metadata[0] konstruiert hat (z.B. auf vm verweist), kann er erneut metadata[2] konstruieren, um gefährliche Methoden aus bestimmten Modulen zu exportieren, wie z.B. vm.runInThisContext, was zur Ausnutzung der Schwachstelle führt.


3. Analyse der Schwachstellenausnutzung

Bei meiner Analyse habe ich die von ejpir bereitgestellte Testumgebung und den Exploit referenziert und als Beispiel den Code Execution Gadget vm_runInThisContext analysiert. Der Ablauf ist wie folgt (Hinweis: In realen Umgebungen kann der Exploit-Prozess etwas abweichen!):

Schritt 1: Empfangen der Anfrage

Senden Sie zunächst eine Anfrage mit dem Payload. Der Haltepunkt beim Abrufen der Anfrageposition ist wie folgt:

Schritt 2: Parsen der Formulardaten

Anschließend erreicht das Programm die Position const formData = parseMultipart(buffer, boundaryMatch[1]); und springt in parseMultipart

parseMultipart extrahiert die Anforderungsdaten und gibt sie an formData zurück

Schritt 3: Aufruf von decodeAction (Schwachstelleneinstiegspunkt)

Springen Sie in const actionFn = await decodeAction(formData, serverManifest); Stelle, an der die Schwachstelle auftritt

Springen Sie in loadServerReference

Schritt 4: Kerncode der Schwachstelle requireModule

Als nächstes erreichen wir die Kerncode-Position der Schwachstelle requireModule. Springen Sie hinein

Es gibt den id-Wert mit # als Trennzeichen für die Modulmethode zurück und gibt den bound-Parameterwert als Methodenparameter zurück

Schritt 5: Ausführen des Payloads

Springen Sie in actionFn, um den endgültigen Payload auszuführen

Damit ist die Ausnutzung der Schwachstelle abgeschlossen!


4. Zusammenfassung und Verteidigungsmaßnahmen

Diese Schwachstelle ist ebenfalls auf eine unzureichende Eingabevalidierung zurückzuführen, ähnlich wie bei Log4j und Fastjson. Ich habe oben vm_runInThisContext getestet, aber tatsächlich sind mehrere Gadgets ausnutzbar, wie zum Beispiel:

  • vm#runInThisContext
  • vm#runInNewContext
  • child_process#execSync
  • child_process#execFileSync
  • child_process#spawnSync
  • fs#readFileSync
  • fs#writeFileSync
  • #constructor
  • #__proto__
  • #prototype

Ein Angreifer kann diese Schwachstelle nutzen, um Folgendes zu erreichen:

  • Remote Code Execution (RCE): Ausführen beliebiger Systembefehle über vm#runInThisContext oder child_process#execSync
  • Dateisystemoperationen: Lesen/Schreiben beliebiger Dateien über fs#readFileSync, fs#writeFileSync
  • Persistenzangriffe: Schreiben von SSH-Public-Keys, Ändern von .bashrc, Überschreiben von Anwendungsdateien usw.
  • Informationsleck: Lesen sensibler Konfigurationsdateien (.env, private Schlüssel, Datenbank-Anmeldedaten usw.)

Darauf basierend können die folgenden Verteidigungsmaßnahmen empfohlen werden:

1. Temporäre Verteidigung

Temporäre Verteidigung kann aus diesen Blickwinkeln erfolgen: Es können Regeln in der WAF konfiguriert werden, um diese gefährlichen Felder zu blockieren und so bösartige Angriffe rechtzeitig abzufangen. Außerdem kann ein solcher Filter in Nginx eingerichtet werden, wie folgt:

root@kitploit:~
# Nginx 配置示例
location /formaction {
    # 拦截包含危险模块引用的请求
    if ($request_body ~* "(vm#|child_process#|fs#|module#)") {
        return 403;
    }
    # 拦截原型链污染尝试
    if ($request_body ~* "(#constructor|#__proto__|#prototype)") {
        return 403;
    }
}

2. So schnell wie möglich aktualisieren

Der Hersteller hat bereits ein Sicherheitsupdate veröffentlicht. Aktualisieren Sie umgehend auf eine sichere Version! :

root@kitploit:~
# Upgrade react-server-dom-webpack
npm install react-server-dom-webpack@>=19.2.0

# Upgrade react-server-dom-turbopack
npm install react-server-dom-turbopack@>=19.2.0

# Next.js users
npm install next@>=15.0.5

Behobene Versionen:

  • react-server-dom-webpack: >= 19.2.0
  • react-server-dom-turbopack: >= 19.2.0
  • next.js: >= 15.0.5

Bei der Analyse der oben genannten Schwachstelle habe ich mich auf die entsprechenden Exploits von whiteov3rflow bezogen und ein Tool zur Erkennung der Schwachstelle für die Testumgebung entwickelt, das ich im GitHub-Repository bereitgestellt habe.

Wer sich selbst testen möchte, kann es über diesen Link abrufen (Hinweis: Aufgrund der Testumgebung des ursprünglichen Autors ist es derzeit möglicherweise nur für die ursprüngliche Testumgebung geeignet; weitere Verbesserungen folgen. Bei Bedarf kann man es auch selbst anpassen...). Beachten Sie, dass eine legale Autorisierung erforderlich ist, nicht autorisierte Schäden sind untersagt!

3. Vorsicht bei Aussagen und Handlungen!

Bis heute, dem 5. Dezember 2025, habe ich online gesehen, dass das "Gerücht" um diese Schwachstelle wie eine Achterbahn auf und ab geht, mal "Atombombe", mal "Wasserloch", und dann wieder "Atombombe"... Die zugehörigen Ausnutzungsmethoden sind noch zahlreicher. Nach derzeitigen Informationen scheint sich die "Atombombe" zu bestätigen, nur der Auswirkungsbereich ist geringer als bei Log4j. Aber unabhängig davon sollten alle Beteiligten so schnell wie möglich aktualisieren, um zukünftige Probleme zu vermeiden!!!

Außerdem ein Sicherheitshinweis an Entwickler: Vertraue niemals Benutzereingaben. Log4j, Fastjson und das aktuelle ReactRCE sind alle aufgrund dieses Punktes betroffen. Daher müssen bei der tatsächlichen Geschäftsentwicklung an gefährlichen Stellen unbedingt Sandboxen oder Whitelists verwendet werden, um strenge Überprüfungen durchzuführen und Tragödien zu vermeiden!!!

Aus Büchern Gelerntes wirkt oberflächlich; um die Sache wirklich zu verstehen, muss man vorsichtig handeln.


Referenzen

  • Offizielle Ankündigung zu CVE-2025-55182
  • React Security Advisory
  • GitHub PoC von ejpir
  • React Server Components Dokumentation
Tool herunterladen