AvisoIncidente contenido

Aviso de seguridad: React2Shell (CVE-2025-55182 / CVE-2025-66478)

Esta página explica cómo afectó la vulnerabilidad React2Shell a apptesters.org, qué hicimos para proteger nuestros sistemas y qué significa para tus datos.

Publicado por primera vez
12 de diciembre de 2025 (IST)
Estado
Corregido y supervisado
ID de CVE
CVE-2025-55182 (React), CVE-2025-66478 (Next.js)

Impacto en los datos de clientes

Sin indicios de acceso a datos de clientes

Este servidor no almacena los datos de tu cuenta, tus pedidos, tu información de pago ni tus certi­ficados. Todo eso se encuentra en nuestros backends en la nube de Google y Amazon, que no se vieron comprometidos.

Riesgo de exposición de datos (este host)

Qué ocurrió

Ejecución remota de código en el servidor web

Se explotó una vulnerabilidad crítica de React Server Components contra nuestra app pública de Next.js. Los atacantes pudieron ejecutar comandos limitados dentro de un contenedor restringido en el servidor web.

Flujo simplificado de la solicitud

Solicitud del atacante→App Next.js→Servicio Node

Estado actual

Vulnerabilidad corregida, C2 bloqueado, acceso reforzado

Actualizamos a versiones corregidas, eliminamos cualquier artefacto malicioso restante, bloqueamos la infraestructura del ataque en el firewall, reforzamos la configuración de SSH y añadimos monitorización del estado.

Capas de defensa ya implementadas

App corregidaBloqueos en el firewallRefuerzo de SSH

¿Qué es React2Shell (CVE-2025-55182 / CVE-2025-66478)?

React2Shell es una vulnerabilidad crítica de ejecución remota de código en React Server Components (RSC). Se identifica como CVE-2025-55182 en el propio React y como CVE-2025-66478 por su impacto derivado en las aplicaciones Next.js que usan el App Router.

En las versiones vulnerables, se podía engañar al protocolo RSC para que realizara una deserialización insegura de datos controlados por el atacante. Esos datos podían invocar directamente API del servidor y ejecutar comandos de shell arbitrarios a través de Node.js:

  • Un atacante envía una solicitud HTTP manipulada a un endpoint vulnerable.
  • El servidor procesa la carga útil RSC maliciosa y acaba ejecutando comandos arbitrarios dentro del proceso de Node.js.
  • Esos comandos se ejecutan con los mismos privilegios que la aplicación web en ese servidor.

La vulnerabilidad recibió una puntuación de CVSS 10.0 (crítica) y se ha explotado ampliamente contra aplicaciones sin parchear.

¿Qué ocurrió en apptesters.org?

Nuestro sitio web principal, apptesters.org, funciona con Next.js y React Server Components. Durante la oleada global de explotación de React2Shell, los atacantes provocaron la ejecución remota de código en este servidor web de producción.

A partir del análisis de registros y procesos, observamos lo siguiente:

  • El tráfico del exploit invocaba comandos de Node.js que intentaban descargar y ejecutar cargas útiles genéricas de botnets o malware.
  • Se hicieron varios intentos de obtener binarios y scripts desde servidores externos de comando y control y de establecer persistencia.
  • En su mayoría, estas cargas útiles fallaron porque la aplicación se ejecutaba en un contenedor restringido, sin shell persistente, sin gestor de paquetes global y con límites estrictos de recursos.
  • No se encontraron indicios de exfiltración de datos, robo de credenciales ni movimiento lateral desde este host hacia nuestros backends en la nube.

Qué hicimos para proteger nuestros sistemas

Nuestra respuesta se centró en corregir la vulnerabilidad, eliminar cualquier posible malware y reforzar el acceso para reducir el alcance de problemas similares en el futuro.

1. Corregimos el stack de la aplicación

Actualizamos Next.js a 15.3.6 con la herramienta oficial fix-react2shell-next, para asegurarnos de usar la implementación reforzada de React Server Components.

2. Eliminamos artefactos sospechosos

Buscamos indicadores conocidos de mineros y botnets, eliminamos cualquier binario o script desconocido y comprobamos que no quedaran servicios ni tareas cron maliciosos.

3. Reforzamos el acceso SSH

Restringimos los inicios de sesión SSH a acceso root únicamente mediante claves, revisamos las claves autorizadas y endurecimos la configuración para reducir los puntos de entrada remotos.

4. Añadimos bloqueos a nivel de red

Añadimos reglas explícitas en el firewall para bloquear la comunicación con IP de comando y control maliciosas conocidas y asociadas a esta campaña.

5. Mejoramos la monitorización y las comprobaciones de estado

Activamos una monitorización ligera del estado de los procesos clave y añadimos medidas para detectar un uso anómalo de recursos en el servidor.

6. Lo documentamos y seguiremos mejorando

Preparamos este resumen público del incidente y un informe interno más detallado para seguir mejorando nuestra postura de seguridad.

Qué significa esto para tus datos

La pregunta más importante es si este incidente afectó a tus datos. Según nuestra arquitectura y nuestra investigación:

Dónde se guardan realmente tus datos

  • Las cuentas de clientes, los pedidos, los identificadores de dispositivos (UDID) y los datos operativos se almacenan en nuestros backends gestionados en la nube (servicios de Google y Amazon).
  • Este servidor web solo aloja el frontend de Next.js y la capa de API que se comunica con esos backends; no guarda copias completas de esos datos en disco.
  • No encontramos indicios de que los atacantes accedieran a esos sistemas en la nube ni a ningún registro de clientes.

En resumen: este incidente afectó al entorno del servidor de la interfaz, no a las bases de datos donde se encuentra tu información.

Adelantándonos a los problemas de seguridad

Nos tomamos los incidentes en serio, incluso cuando no se exponen datos de clientes. Este aviso forma parte de nuestro compromiso de explicar con claridad qué ocurrió y cómo respondemos.

Resumen de seguridad