10 dic -2025
El Colapso de la Confianza: Por qué React es un Riesgo para Datos Sensibles
En sectores donde la integridad de los datos es ley (Hospitales, Finanzas, Educación), la seguridad debe ir antes que la moda. Los eventos recientes han demostrado que mi postura de evitar React no es solo una opinión, sino una medida de mitigación de riesgos ante una arquitectura que se ha vuelto demasiado compleja para ser segura.
Mientras preparaba una plática de costos de la nube para empresas medianas (que usan React) salió una vulnerabilidad crítica mas.
Desde sus inicios he considerado la combinación de REACT/next.js una bomba de tiempo pensada para empresas grandes. En las empresas medianas tiene mas problemas que beneficios. Y los hechos me dan la razón.
Nuestra función es ser el consultor que no tiene miedo de ir contra la corriente para proteger al cliente.
1. Diciembre 2025: React sacó 10 en CVE, lo mas grave posible. Esto cambia todo
En un periodo de solo 8 días, el ecosistema de React sufrió una crisis sin precedentes. No hablamos de errores menores, sino de una vulnerabilidad que permite a un atacante tomar el control total del servidor.
-
Vulnerabilidad Crítica: Un CVE con calificación 10.0 (la máxima posible).
-
Escala del Ataque: 582.1 millones de intentos de explotación detectados por Cloudflare.
-
Actores Globales: Explotación confirmada por actores estatales y compromiso reportado en infraestructuras de Microsoft, Amazon y Google.
¿Puedes auditar 847 dependencias npm con esta velocidad de aparición de fallos? La respuesta corta es no.
Tuve que decir en la plática que esta vulnerabilidad no hay manera de arreglarla en servidores recién instalados. Se resuelve de momento por reglas de firewall. Y de todos modos next.js da mensajes de error en otras cosas, no se degrada fácilmente , solo te dice que hay un error en el servidor (es el comportamiento habitual de next). Pero esto si no se los digo yo, quien ?
Detalles Técnicos:
- Identificador CVE-2025-55182 (también conocido como React2Shell)
- Puntuación CVSS 10.0 Crítico (Máxima severidad posible)
- Tipo de Fallo Deserialización insegura en el protocolo «Flight» de RSC
- Impacto RCE (Remote Code Execution) No Autenticado
- Alcance Control total del servidor mediante una única petición HTTP POST
- Sistemas Afectados React 19.0.x, Next.js 15.x / 16.x (con App Router)
2. El Problema Estructural: Más JS no arregla el JS
Hemos terminado con monstruosidades de muchos megabytes antes de escribir una sola línea de lógica de negocio. El problema real es la cultura del desarrollador de React: usar npm install hasta que sus problemas pasan a ser los problemas de seguridad de sus usuarios.
Incluso el equipo oficial de React ha admitido que el modelo tradicional de «Create React App» está muerto, recomendando migrar a frameworks más complejos:
-
Fuente Oficial: Sunsetting Create React App – React Blog
Sin embargo, esta «solución» es solo depender de otra estructura problemática: Next.js.
3. La Fragilidad de Next.js y sus «Issues» Eternos
Al instalar React te acostumbras a usar NPM y next sin entender los riesgos. Pasar a Next.js no es la panacea. Es trasladar el riesgo a una capa de servidor que se cae con errores que parecen no tener fin. Solo hay que mirar los issues que siguen vivos y afectando a producción:
-
Casos críticos en GitHub:
79622,78518,75637,65772y el longevo48635.
Recientemente, analizando un error que parecía de React, resultó ser el Error 79622 de Next.js. El sistema simplemente falla por su propia complejidad estructural. Cualquier desarrollador que haya lidiado con el mensaje Internal Server Error genérico de Next.js sabe de que estoy hablando.
Es imposible usar React de forma moderna sin npm o yarn. Al hacerlo, heredas un árbol de dependencias masivo
-
Desde que el equipo oficial de React «mató» a Create React App, han forzado a todo el mundo a usar un framework. Next.js se ha vuelto el estándar de facto. El problema es que, al usarlo, pasas de tener una librería de UI a tener un servidor completo ejecutando JavaScript (Node.js) expuesto a Internet. Es ahí donde el riesgo escala de un simple error visual a una Ejecución Remota de Código (RCE).
-
La falacia de la «Simplificación»: Te venden que Next.js simplifica las cosas, pero lo que hace es ocultar la complejidad bajo capas y capas de abstracción. Cuando algo falla (como el error
79622que mencioné), el desarrollador promedio no tiene idea de qué está pasando porque hay demasiada «magia» en el medio.
Con Next.js Un error no simplemente deshabilita una función, tira el servidor. Para un hospital, una pantalla blanca con «Internal Server Error» puede ser una crisis operativa. Y olvidate de auditoríade seguridad de dependencias o de usar esto en entornos air-gapped
4. Análisis del CVE-2025-55182: RCE en el Corazón de React
El 3 de diciembre de 2025 se marcó un hito oscuro. La falla afecta a las versiones 19.0, 19.1.0, 19.1.1, y 19.2.0, e incluso impacta a herramientas de desarrollo como Vite.
-
Impacto: Ejecución remota de código (RCE) no autenticada en los React Server Components.
-
Estado: Solo se mitiga con reglas de firewall estrictas por ahora.
No es la única; la exposición de código fuente en el CVE-2025-55183 ya era un riesgo latente del que advertí a mis clientes meses antes de su publicación oficial.
5. El Panorama Real (Wiz y Threat Intelligence)
Lo que los «vendedores» de React no te dicen es que la superficie de ataque es masiva. Según datos de Wiz Research:
-
El 39% de los entornos cloud contienen instancias vulnerables.
-
El 44% de los entornos cloud tienen Next.js expuesto públicamente.
Actividad post-explotación observada por Unit 42 (Palo Alto) y Microsoft Defender:
-
Inyección de Cryptominers (XMRig).
-
Instalación de Backdoors (Auto-color) y Reverse Shells conectados a Cobalt Strike.
-
Movimiento lateral en redes corporativas para robo de credenciales.
Implicaciones de las que nadie te habla:
- El Costo de Mantenimiento: En un sistema maduro, las dependencias son pocas y estables. En Next.js, el equipo de desarrollo pasa el 30% de su tiempo peleando con actualizaciones de
npm, versiones de Node y bugs de la capa de servidor del framework. Es un impuesto a la productividad que nadie presupuesta.
- El Falso Progreso: He visto empresas medianas abandonar infraestructuras sólidas en PHP/CodeIgniter/Symfony para perseguir la «modernidad» de Next.js, solo para descubrir que cambiaron un tanque blindado por un coche de carreras hecho de cristal. El resultado: más vulnerabilidades, costos de nube inflados y una fragilidad operativa que simplemente no se pueden permitir.
6. Resumen de Vulnerabilidades Históricas
Para entender el riesgo, hay que mirar el historial completo de CVEs:
| Categoría | CVEs Estimados | Notas de Seguridad |
| React Core | ~8 – 10 | Generalmente seguro, hasta la llegada de RSC. |
| Next.js | 25+ | Mayor superficie de ataque por ser un framework de servidor. |
| Ecosistema (NPM) | Miles | El verdadero agujero negro: librerías de terceros sin control. |
-
CVE-2024-21650 (XSS): Fallos en renderizado que permitían inyección de scripts si no había un saneamiento perfecto.
Conclusión para Sectores Sensibles
Un CVSS 10.0 es casi inexistente en software maduro. Significa que el exploit tiene un 100% de confiabilidad y solo requiere un simple HTTP POST para comprometer un hospital o un banco. Si manejas datos críticos, la pregunta no es si React es cómodo, sino si puedes permitirte este nivel de exposición.
Sugerencias
Al escribir esto en Diciembre 2025 veo dos alternativas reales.
- Php puro o con symfony / codeigniter / laravel
- Si estas casado con Spring, usa vue o thymeleaf. No react.
Busca Menor complejidad estructural y mayor control.