
Original Proof-of-Concept-Exploits für React2Shell (CVE-2025-55182), die Remote-Code-Ausführung in Next.js-Anwendungen über Schwachstellen beim Parsen von Webpack-Chunks demonstrieren.
Da öffentliche PoCs kursieren und Googles Scanner eine Abwandlung meines ursprünglich eingereichten PoC verwendet, ist es nun endlich an der Zeit, meine originalen PoCs für React2Shell zu teilen.
Dieses Repository enthält 3 PoCs:
00-very-first-rce-poc – der allererste PoC, den ich für RCE entwickelt habe. Funktioniert nur direkt auf Entwicklungs-Builds von Next.js-Seiten, die Webpack verwenden.01-submitted-poc.js (der wichtigste) – der exakte PoC, den ich bei Meta eingereicht habe, weitaus einfacher und effektiver.02-meow-rce-poc – der PoC, der gehasht und von Sylvie als Beweis gepostet wurde, am 29. November, kurz vor der ersten Offenlegung gegenüber Meta.Viele andere haben ihre PoCs erklärt, aber hier ist meine sehr kurze Erläuterung:
$@x gewährt Zugriff auf ein Chunkthen auf unser eigenes Objekt.then-Funktion)Chunk-Objekt_response ermöglicht uns den Zugriff auf eine Vielzahl von Gadgets, sobald dies geschiehtIhr werdet vielleicht bemerken, dass mein PoC eine lustige Sache in then hat. Das war ein nettes grundlegendes Konstrukt, das ich zum 'Verketten' mehrerer Chunks verwendet habe, wobei resolve an Array.map übergeben wird, um zu einem anderen, in $0 definierten Chunk zu 'springen'.
Der öffentlich nachgebaute PoC, der die Runde macht, macht dies nicht, da es bei einem einzelnen Sprung nicht nötig ist. Es war schön zu sehen, dass der nachgebaute PoC ansonsten dasselbe _formData-Gadget wie meiner verwendet – aber der 00--PoC ist eine wilde Fahrt, falls ihr euch traut, ihn zu lesen :)
Demnächst.