
Análisis técnico detallado de CVE-2025-55182 (React2Shell), que rastrea los internals del protocolo Flight de React para explicar la cadena de explotación, la elaboración del payload y el análisis de la corrección.
Autor: Kavienan J
Vulnerabilidad descubierta por: lachlan2k, quien la divulgó responsablemente al equipo de React.
Para actualizaciones sobre esta vulnerabilidad, visita: react2shell.com
ReactFlightReplyServer.jsCVE-2025-55182 tiene una severidad de 10.0/10.0. Si has visto los PoCs públicos, puede que hayas notado que, aunque muestran el exploit funcionando, las explicaciones de por qué el payload tiene ese aspecto pueden resultar insuficientes, lo cual tiene mucho sentido dado lo complicado que es el Protocolo Flight de React. Flight, la capa de serialización detrás de los Server Components y las Server Actions de React, es una intrincada máquina de estados de más de 1,100 líneas, y su comportamiento no es intuitivo a menos que rastrees el código por ti mismo.
Los PoCs de la comunidad demuestran la vulnerabilidad claramente:
…pero cuando intentas responder «¿Por qué funciona esto?», rápidamente te encuentras explorando a fondo los internals de React que nunca fueron pensados para leerse línea por línea.
Nota: Muchos PoCs atribuyen incorrectamente el arreglo a cambios en
requireModule. Como veremos en El arreglo, el payload del exploit nunca llega a esa función; el código vulnerable real reside enteramente enReactFlightReplyServer.js.
Este análisis es mi intento de aplicar ingeniería inversa a la cadena del exploit rastreando paso a paso la lógica de decodificación e inicialización de chunks de React. Cada comportamiento discutido aquí proviene directamente de cómo funcionaba ReactFlightReplyServer.js antes del arreglo (referencia: https://github.com/facebook/react/blob/v19.2.0/packages/react-server/src/ReactFlightReplyServer.js), destilado y simplificado para que un desarrollador de React/JS pueda seguirlo con suficiente paciencia.
Siguiente sección: Antecedentes