Actualización urgente: Grupos de amenazas vinculados a China explotan activamente la vulnerabilidad desde el 3 de diciembre de 2025

Una vulnerabilidad de severidad máxima (CVSS 10.0) en React Server Components permite a atacantes no autenticados ejecutar código arbitrario en servidores mediante una simple solicitud HTTP maliciosa. La falla, identificada como CVE-2025-55182 y apodada «React2Shell», afecta a React 19.x y frameworks derivados como Next.js 14.3+ y 15-16, con explotación confirmada por actores estatales chinos horas después de su divulgación pública.

Cronología de la Crisis

  • 29 de noviembre de 2025: Lachlan Davidson reporta la vulnerabilidad al equipo de React
  • 3 de diciembre de 2025: Divulgación pública coordinada por React y Vercel
  • 3 de diciembre de 2025: Primeras horas posteriores a la divulgación, grupos de amenazas chinos (Earth Lamia, Jackpot Panda) comienzan explotación activa
  • 4 de diciembre de 2025: Publicación de PoC funcional contra configuraciones por defecto por Moritz Sanft
  • 4 de diciembre de 2025: Lachlan Davidson publica PoC oficial en react2shell.com
  • 5 de diciembre de 2025: Amazon confirma explotación activa por múltiples APTs

Análisis Técnico de la Vulnerabilidad

Causa Raíz: Deserialización Insegura en el Protocolo Flight

CVE-2025-55182 es una vulnerabilidad de deserialización lógica en el protocolo «Flight» de React Server Components (RSC). Cuando un servidor procesa cargas útiles RSC enviadas por clientes, el protocolo deserializa los datos codificados sin validación adecuada de su estructura.

Flujo de explotación:

  1. Cliente envía solicitud HTTP POST con payload RSC malicioso
  2. Servidor deserializa el payload usando el protocolo Flight
  3. Datos controlados por el atacante influyen en la lógica de ejecución del servidor
  4. Ejecución de código JavaScript arbitrario con privilegios del servidor

Vector de Ataque

La explotación no requiere autenticación y puede ejecutarse sobre HTTP con una única petición diseñada. Investigadores de Wiz han confirmado tasa de éxito cercana al 100% en pruebas controladas.

Configuraciones vulnerables por defecto:

# Aplicación Next.js vulnerable creada con scaffolding estándar
npx [email protected] vulnerable-app --yes
cd vulnerable-app
npm run build
npm run start

# Esta aplicación ES vulnerable sin modificaciones de código

Paquetes Afectados

React 19.x:

  • react-server-dom-webpack (19.0.0, 19.1.0, 19.1.1, 19.2.0)
  • react-server-dom-parcel (19.0.0, 19.1.0, 19.1.1, 19.2.0)
  • react-server-dom-turbopack (19.0.0, 19.1.0, 19.1.1, 19.2.0)

Versiones parcheadas: 19.0.1, 19.1.2, 19.2.1

Next.js:

  • Versiones ≥14.3.0-canary.77, todas las 15.x y 16.x con App Router

Versiones parcheadas: 16.0.7, 15.5.7, 15.4.8, 15.3.6, 15.2.6, 15.1.9, 15.0.5

Nota importante: CVE-2025-66478 (asignado inicialmente a Next.js) fue rechazado por NVD como duplicado de CVE-2025-55182, ya que la causa raíz es idéntica en todos los casos.

Alcance del Impacto

Frameworks y Herramientas Afectadas

Cualquier biblioteca que implemente React Server Components está potencialmente vulnerable:

  • Next.js (App Router en versiones afectadas)
  • React Router (vista previa de RSC)
  • Vite (plugin RSC)
  • Parcel (plugin RSC)
  • RedwoodJS
  • Waku
  • Expo (en configuraciones específicas)

Datos de Exposición Global

Según investigación de Wiz y otras fuentes OSINT:

  • 39% de entornos cloud contienen instancias vulnerables de React/Next.js
  • 69% de entornos cloud tienen Next.js instalado
  • 44% de todos los entornos cloud tienen instancias Next.js expuestas públicamente
  • +968.000 servidores ejecutando React/Next.js identificados por Palo Alto Networks Unit 42

Datos OSINT de exposición pública:

Motor de BúsquedaAplicaciones React Expuestas
FOFA+20.000
Shodan+30.000
ZoomEye+3.1 millones

Condiciones de Vulnerabilidad

Aplicaciones vulnerables:

  • Cualquier aplicación React 19.x que use React Server Components
  • Aplicaciones Next.js 14.3+ o 15-16 con App Router
  • Incluso aplicaciones que NO implementan explícitamente React Server Functions pero SOPORTAN React Server Components

Aplicaciones NO afectadas:

  • React sin servidor (aplicaciones puramente client-side)
  • Aplicaciones sin framework/bundler compatible con RSC
  • Next.js 13.x o versiones anteriores de 14.3
  • Next.js con Pages Router (no App Router)
  • Edge Runtime de Next.js

Explotación Activa: Amenazas Confirmadas

Actores de Amenaza Identificados

Amazon Web Services, a través de su infraestructura honeypot MadPot, identificó explotación activa por grupos con vínculos estatales chinos:

Earth Lamia (APT China)

  • Previamente asociado con explotación de CVE-2025-31324 (SAP NetWeaver)
  • Explotación confirmada en honeypots AWS horas después de divulgación

Jackpot Panda (APT China)

  • Activo desde 2020, enfocado en industria del juego online en Asia-Pacífico
  • Vinculado al compromiso de cadena de suministro de Comm100 (2022)
  • Rastrado por ESET como «Operación ChattyGoblin»
  • Posibles vínculos con contratista I-Soon

Características de los Ataques

Los analistas de amenazas observan:

  • Explotación simultánea de múltiples CVEs (CVE-2025-55182, CVE-2025-1338)
  • Uso de PoCs públicos, incluyendo versiones no funcionales
  • Monitorización activa de bases de datos de vulnerabilidades
  • Automatización de exploits inmediatamente tras divulgaciones públicas

Nota crítica: Amazon reporta que muchos PoCs públicos requieren configuraciones específicas (como registrar explícitamente módulos peligrosos fs, child_process, vm), pero el PoC funcional de diciembre 4 sí afecta configuraciones por defecto.

Mitigación Urgente

Paso 1: Actualización Inmediata

Para aplicaciones React 19.x:

# Verificar versión actual
npm list react-server-dom-webpack react-server-dom-parcel react-server-dom-turbopack

# Actualizar a versiones parcheadas
npm install [email protected] [email protected]
npm install [email protected]
npm install [email protected]
npm install [email protected]

# Verificar actualización
npm audit

Para aplicaciones Next.js:

# Identificar versión actual
npx next --version

# Actualizar según rama de versión
npm install [email protected]    # Para 16.x
npm install [email protected]    # Para 15.5.x
npm install [email protected]    # Para 15.4.x
npm install [email protected]    # Para 15.3.x
npm install [email protected]    # Para 15.2.x
npm install [email protected]    # Para 15.1.x
npm install [email protected]    # Para 15.0.x

# Rebuild aplicación
npm run build

Herramienta de verificación automatizada:

Neurolint-CLI (disponible en GitHub) puede detectar versiones vulnerables y actualizar automáticamente:

npx neurolint-cli check
npx neurolint-cli update --backup

Paso 2: Protección WAF/CDN (Temporal)

Múltiples proveedores han implementado reglas WAF para mitigación temporal:

Cloudflare:

  • Regla WAF activada por defecto para todos los clientes
  • No requiere acción manual

Vercel:

  • Protección a nivel de plataforma para todos los proyectos alojados
  • Reglas WAF desplegadas automáticamente

Google Cloud Armor:

  • Nueva regla WAF disponible para Application Load Balancers
  • Detecta y bloquea intentos de explotación

AWS WAF:

  • Regla personalizada disponible en boletín AWS-2025-030
  • Incluida en AWSManagedRulesKnownBadInputsRuleSet v1.24

Regla WAF personalizada AWS (ejemplo):

{
  "Name": "ReactJSRCE_CUSTOM",
  "Priority": 99,
  "Statement": {
    "AndStatement": {
      "Statements": [
        {
          "RegexMatchStatement": {
            "RegexString": "POST",
            "FieldToMatch": {"Method": {}},
            "TextTransformations": [{"Priority": 0, "Type": "NONE"}]
          }
        },
        {
          "RegexMatchStatement": {
            "RegexString": "(?i)(?:next-action|rsc-action-id)",
            "FieldToMatch": {
              "Headers": {
                "MatchPattern": {"All": {}},
                "MatchScope": "KEY",
                "OversizeHandling": "CONTINUE"
              }
            },
            "TextTransformations": [{"Priority": 0, "Type": "NONE"}]
          }
        },
        {
          "RegexMatchStatement": {
            "RegexString": "(?i)\"status\"\\s*:\\s*\"resolved_model\"",
            "FieldToMatch": {
              "Body": {"OversizeHandling": "CONTINUE"}
            },
            "TextTransformations": [
              {"Priority": 0, "Type": "URL_DECODE_UNI"},
              {"Priority": 1, "Type": "JS_DECODE"},
              {"Priority": 2, "Type": "UTF8_TO_UNICODE"}
            ]
          }
        }
      ]
    }
  },
  "Action": {"Block": {}}
}

ADVERTENCIA: Las protecciones WAF NO son sustitutas del parcheado. Son medidas temporales mientras se completa la actualización.

Paso 3: Detección de Compromiso

Análisis de logs de servidor:

# Buscar solicitudes POST sospechosas con headers RSC
grep -r "next-action\|rsc-action-id" /var/log/nginx/access.log
grep -r "POST.*_next/data" /var/log/apache2/access.log

# Buscar payloads con marcadores de Flight protocol
grep -r '\$@' /var/log/*/access.log
grep -r 'resolved_model' /var/log/*/access.log

Indicadores de Compromiso (IoCs):

Datadog Security Labs mantiene un repositorio actualizado de IPs maliciosas:

https://github.com/DataDog/indicators-of-compromise/tree/main/react-CVE-2025-55182

Escaneo con Tsunami (Google):

Google ha actualizado su escáner Tsunami para detectar CVE-2025-55182:

# Instalar Tsunami
git clone https://github.com/google/tsunami-security-scanner.git
cd tsunami-security-scanner

# Ejecutar escaneo
./tsunami --ip-v4-target=TU_SERVIDOR --scan-results-local-output-format=JSON

Paso 4: Evaluación de Superficie de Ataque

Escaneo de dependencias:

# Detectar paquetes vulnerables en proyecto
npm audit --production

# Análisis profundo con mejor salida
npx better-npm-audit audit

# Verificar toda la cadena de dependencias
npm ls react-server-dom-webpack
npm ls react-server-dom-parcel
npm ls react-server-dom-turbopack

Herramientas de seguridad empresarial:

  • Tenable Cloud Security: Escaneo de workloads cloud e imágenes Docker
  • Rapid7 InsightVM/Nexpose: Check no autenticado disponible desde 4 de diciembre
  • Picus Security: Simulación de explotación con prueba gratuita 14 días
  • Datadog Workload Protection: Detección con reglas personalizadas

Contexto de Severidad

Comparación con Log4Shell

React2Shell comparte características preocupantes con Log4Shell (CVE-2021-44228):

CaracterísticaLog4ShellReact2Shell
CVSS Score10.010.0
Autenticación requeridaNoNo
Complejidad de explotaciónBajaBaja
Vectores de ataqueRedRed
Alcance en ecosistemaMasivoMasivo (82% desarrolladores JS usan React)
Explotación en configuración default
PoC público disponible

Por Qué Es Crítico

  1. Ubicuidad de React: Según State of JavaScript 2024, el 82% de desarrolladores JavaScript usan React
  2. Explotación trivial: Una sola petición HTTP diseñada logra RCE
  3. Configuraciones vulnerables por defecto: No requiere errores de codificación del desarrollador
  4. Superficie de ataque amplia: Afecta incluso aplicaciones que no usan explícitamente Server Functions
  5. Explotación activa confirmada: APTs estatales comenzaron ataques en horas, no días

Justin Moore (Palo Alto Networks Unit 42):

«Esta falla es una amenaza crítica porque es un exploit de llave maestra, exitoso no al crashear el sistema, sino al abusar de su confianza en las estructuras de datos entrantes. El sistema ejecuta el payload malicioso con la misma fiabilidad que el código legítimo.»

Estrategia de Respuesta para DevOps

Priorización de Parches

Prioridad 1 – CRÍTICO (0-24 horas):

  • Aplicaciones Next.js 15-16 con App Router expuestas públicamente
  • APIs React 19.x con RSC accesibles desde Internet
  • Aplicaciones en producción con tráfico público

Prioridad 2 – ALTA (24-72 horas):

  • Aplicaciones internas con RSC
  • Entornos de staging/QA
  • Aplicaciones con acceso limitado pero con datos sensibles

Prioridad 3 – MEDIA (1 semana):

  • Entornos de desarrollo
  • Aplicaciones legacy en fase de migración
  • Aplicaciones sin RSC pero con React 19.x instalado

Pipeline CI/CD: Integración de Verificaciones

GitHub Actions (ejemplo):

name: React2Shell Vulnerability Check

on: [push, pull_request]

jobs:
  security-scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      
      - name: Setup Node.js
        uses: actions/setup-node@v3
        with:
          node-version: '20'
      
      - name: Install dependencies
        run: npm ci
      
      - name: Audit for React2Shell
        run: |
          npm audit --json | jq '.vulnerabilities | 
          to_entries[] | 
          select(.value.via[].cve == "CVE-2025-55182")'
      
      - name: Check React version
        run: |
          REACT_VERSION=$(npm list react --depth=0 --json | jq -r '.dependencies.react.version')
          if [[ "$REACT_VERSION" =~ ^19\.(0\.0|1\.[0-1]|2\.0)$ ]]; then
            echo "ERROR: Vulnerable React version detected: $REACT_VERSION"
            exit 1
          fi
      
      - name: Check Next.js version
        run: |
          if npm list next --depth=0 2>/dev/null; then
            NEXT_VERSION=$(npm list next --depth=0 --json | jq -r '.dependencies.next.version')
            echo "Next.js version: $NEXT_VERSION"
            # Agregar validación de versiones parcheadas
          fi

Terraform/IaC: Verificación de imágenes Docker:

resource "docker_image" "app" {
  name = "myapp:latest"
  
  # Validación pre-deployment
  provisioner "local-exec" {
    command = <<EOT
      docker run --rm ${self.name} npm audit --json | \
      jq '.vulnerabilities | to_entries[] | select(.value.via[].cve == "CVE-2025-55182")' && \
      exit 1 || exit 0
    EOT
  }
}

Comunicación de Crisis

Template para equipos:

ALERTA DE SEGURIDAD CRÍTICA - CVE-2025-55182 (React2Shell)

Severidad: CRÍTICA (CVSS 10.0)
Estado: EXPLOTACIÓN ACTIVA CONFIRMADA
Fecha límite de parcheado: [FECHA - dentro de 24-72h]

ACCIONES REQUERIDAS:
1. Identificar todas las aplicaciones React 19.x y Next.js 14.3+/15-16
2. Actualizar inmediatamente a versiones parcheadas
3. Activar protecciones WAF temporales
4. Revisar logs desde 3 de diciembre para IoCs
5. Reportar status a [RESPONSABLE DE SEGURIDAD]

RECURSOS:
- Guía de actualización: [LINK INTERNO]
- Versiones parcheadas: [TABLA]
- Soporte: [CONTACTO]
- Tracking ticket: [JIRA/TICKET ID]

FAQ: Preguntas Frecuentes

¿Mi aplicación React está afectada si no usa React Server Components?

No. Si tu aplicación React es puramente client-side (renderizada en el navegador sin servidor Node.js), no estás afectado. CVE-2025-55182 solo impacta aplicaciones que implementan React Server Components en el backend.

Para verificar, revisa si tienes imports de paquetes react-server-dom-* o si usas frameworks como Next.js con App Router.

¿Next.js con Pages Router está vulnerable?

No. Solo las versiones de Next.js que usan App Router (introducido en Next.js 13, estable en 14+) están afectadas. El Pages Router tradicional no implementa React Server Components y por lo tanto no es vulnerable a CVE-2025-55182.

Para verificar qué router usas, revisa si tienes un directorio app/ (App Router) o pages/ (Pages Router) en tu proyecto.

¿Debo actualizar aunque no use explícitamente Server Functions?

Sí, absolutamente. El equipo de React confirmó que las aplicaciones son vulnerables incluso si NO implementan endpoints de React Server Functions, siempre que soporten React Server Components. La vulnerabilidad reside en el protocolo Flight subyacente, no en el uso explícito de funciones de servidor.

¿CVE-2025-66478 (Next.js) es diferente de CVE-2025-55182?

No. La National Vulnerability Database (NVD) rechazó CVE-2025-66478 como duplicado de CVE-2025-55182. Aunque inicialmente se le asignó un CVE separado a Next.js, la causa raíz es idéntica en todos los casos: la vulnerabilidad de deserialización en React Server Components. Todas las referencias deben usar CVE-2025-55182.

¿Las protecciones WAF de Cloudflare/Vercel/AWS son suficientes?

No son suficientes por sí solas. Las reglas WAF son una mitigación temporal valiosa que compra tiempo, pero NO reemplazan la actualización del código. Los proveedores enfatizan que debes actualizar a versiones parcheadas inmediatamente.

Razones para no confiar solo en WAF:

  • Los atacantes pueden encontrar bypasses de reglas WAF
  • Las aplicaciones internas sin WAF quedan desprotegidas
  • Los WAF no previenen explotación desde redes internas

¿Existe un PoC público funcional para esta vulnerabilidad?

Sí. Múltiples PoCs están disponibles públicamente:

  1. PoC oficial de Lachlan Davidson: Publicado el 4 de diciembre en react2shell.com
  2. PoC de Moritz Sanft: Publicado en GitHub el 4 de diciembre, confirmado funcional contra aplicaciones Next.js por defecto
  3. Múltiples PoCs no funcionales: Existen también exploits públicos que NO funcionan en escenarios reales (requieren configuraciones específicas)

Amazon confirma que actores de amenazas intentan usar tanto PoCs funcionales como no funcionales, indicando explotación masiva y automatizada.

¿Cómo detecto si mi aplicación ya fue comprometida?

Busca estos indicadores:

1. Análisis de logs HTTP:

# Headers RSC sospechosos
grep -E "(next-action|rsc-action-id)" /var/log/nginx/access.log

# Payloads con marcadores Flight
grep -E '(\$@|resolved_model)' /var/log/apache2/access.log

2. IPs maliciosas conocidas:

  • Consulta el repositorio IoC de Datadog en GitHub (actualizado regularmente)
  • Busca conexiones desde IPs vinculadas a Earth Lamia y Jackpot Panda

3. Actividad de proceso anómala:

  • Procesos hijos inusuales del servidor Node.js/Next.js
  • Conexiones de red salientes inesperadas
  • Modificaciones de archivos en directorio de aplicación

4. Herramientas de escaneo:

  • Tsunami de Google (actualizado con detección CVE-2025-55182)
  • Datadog Workload Protection con reglas custom
  • Tenable Nessus/InsightVM con checks no autenticados

¿Qué frameworks además de Next.js están afectados?

Cualquier framework que implemente React Server Components puede estar vulnerable:

Confirmados afectados:

  • Next.js (App Router, versiones especificadas)
  • React Router (vista previa RSC)
  • Vite (con plugin RSC oficial)
  • Parcel (con plugin RSC)
  • RedwoodJS (con SDK RSC)
  • Waku
  • Expo (en configuraciones específicas con RSC)

Cómo verificar otros frameworks:

# Buscar dependencias RSC en package.json
cat package.json | jq '.dependencies, .devDependencies' | \
grep -E "react-server-dom-(webpack|parcel|turbopack)"

¿Cuál es el plazo realista para parchear en entornos empresariales?

Recomendación oficial de la industria:

  • Aplicaciones críticas expuestas públicamente: 0-24 horas
  • Aplicaciones de producción: 24-72 horas
  • Aplicaciones internas/staging: 1 semana
  • Entornos de desarrollo: 2 semanas

Dada la confirmación de explotación activa por APTs estatales y la disponibilidad de PoCs funcionales públicos, se recomienda priorizar el parcheado fuera de los ciclos normales de actualización. CISA y NCSC probablemente emitirán directrices requiriendo parcheado en 14 días o menos para entidades gubernamentales.

¿Las versiones anteriores a React 19 están afectadas?

No. CVE-2025-55182 afecta exclusivamente a React 19.x (versiones 19.0.0, 19.1.0, 19.1.1, 19.2.0). React Server Components fueron introducidos en React 18, pero las versiones vulnerables del protocolo Flight solo existen en React 19.

Si usas React 18 o anterior, no necesitas actualizar por esta vulnerabilidad específica, aunque deberías mantener tus dependencias actualizadas por otras razones de seguridad.


Recursos Adicionales

Avisos Oficiales

Herramientas de Detección

  • react2shell.com: Sitio oficial del investigador con PoC y detalles técnicos
  • Neurolint-CLI: Herramienta automatizada de verificación y actualización
  • Tsunami Scanner: Escáner actualizado de Google para detección
  • Datadog IoCs: GitHub Repository

Análisis de Inteligencia de Amenazas


Conclusión

CVE-2025-55182 (React2Shell) representa una amenaza de máxima severidad para el ecosistema JavaScript moderno. La combinación de CVSS 10.0, facilidad de explotación, configuraciones vulnerables por defecto, ubicuidad de React/Next.js y explotación activa confirmada por APTs estatales exige una respuesta inmediata.

La ventana entre divulgación pública y explotación se ha reducido a cero horas, eliminando el tiempo de gracia tradicional. Los equipos de desarrollo y operaciones deben tratar esta vulnerabilidad con la misma urgencia que Log4Shell, priorizando el parcheado inmediato sobre ciclos normales de actualización.

Acción prioritaria: Identificar todas las instancias de React 19.x y Next.js 14.3+/15-16 en tu infraestructura y actualizar a versiones parcheadas dentro de 24-72 horas. Las protecciones WAF son valiosas como medida temporal pero no sustituyen el parcheado.

Última actualización: 6 de diciembre de 2025
Fuentes verificadas: React Team, Vercel, AWS, Google Cloud, Wiz, Rapid7, Tenable, Datadog, Palo Alto Networks Unit 42

Por admin

Deja una respuesta

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

Powered By
Best Wordpress Adblock Detecting Plugin | CHP Adblock