- A las 08:47 UTC del 5 de diciembre de 2025, una parte de la red de Cloudflare sufrió una interrupción grave y se recuperó por completo a las 09:12, unos 25 minutos después
- Aproximadamente el 28 % del tráfico HTTP total se vio afectado y solo clientes bajo ciertas condiciones experimentaron la interrupción
- La causa fue un cambio en el WAF (lógica de análisis del cuerpo) para abordar una vulnerabilidad de React Server Components (CVE-2025-55182), sin relación con un ataque cibernético
- Ocurrió un error de código en el proxy FL1 que generó errores HTTP 500; en el nuevo proxy FL2 basado en Rust no se reprodujo el mismo problema
- Cloudflare reconoció que el problema se repitió tras el incidente del 18 de noviembre y está llevando como prioridad máxima un proyecto para reforzar la seguridad y resiliencia del despliegue
Resumen del incidente
- El 5 de diciembre de 2025 a las 08:47 UTC, una parte de la red de Cloudflare experimentó una caída
- Se recuperó toda la prestación del servicio a las 09:12, con un impacto total de 25 minutos
- Aproximadamente el 28 % del tráfico HTTP total se vio afectado
- La interrupción no estaba relacionada con un ataque cibernético ni actos maliciosos, ocurrió durante un cambio interno de configuración
- La causa fue una modificación en la lógica de análisis del cuerpo en WAF para atender la nueva vulnerabilidad de React Server Components
Causa y contexto técnico
- Cloudflare WAF almacena en memoria el cuerpo de la solicitud HTTP para detectar cargas útiles maliciosas
- Se estaba ampliando el tamaño del búfer de 128 KB a 1 MB
- Como la herramienta interna de pruebas no admitía el nuevo tamaño de búfer, se realizó una segunda modificación para desactivar esa herramienta
- Este cambio se propagó de inmediato a todos los servidores a través del sistema de configuración global
- Esta modificación provocó un estado de error en el proxy FL1 y errores de respuesta HTTP 500
- Mensaje de error:
attempt to index field 'execute' (a nil value)
- El problema se identificó de inmediato y el cambio se revirtió a las 09:12
Alcance del impacto
- Solo se vieron afectados los clientes que usan el proxy FL1 y tienen aplicado Cloudflare Managed Ruleset
- Todos los requests de esos sitios devolvían errores HTTP 500
- Algunos endpoints de prueba como
/cdn-cgi/trace fueron excepciones
- La red de China y clientes con otras configuraciones no se vieron afectados
Detalle del error en tiempo de ejecución
- El sistema de rulesets de Cloudflare evalúa reglas por cada solicitud
- Las reglas están compuestas por filtros y acciones, y la acción
execute invoca otro conjunto de reglas
- El sistema interno de registro usa
execute para evaluar reglas de prueba
- El sistema de killswitch está diseñado para desactivar reglas defectuosas, sin embargo
- Esta fue la primera vez que se aplicó un killswitch a una regla que incluía la acción
execute
- Al intentar acceder a un objeto
execute inexistente, se produjo un error de Lua
- Este fue un error de código simple que existía desde hacía años sin ser detectado
- En el proxy FL2 escrito en Rust no se presentó ese error
Avances desde el incidente del 18 de noviembre
- También ocurrió un incidente de gran alcance por despliegue global el 18 de noviembre
- En ese momento, se comunicó directamente con cientos de clientes y se compartió un plan para evitar la propagación masiva de una sola actualización
- Al no haberse completado esa mejora todavía, esto influyó en el incidente actual
- Cloudflare lo estableció como prioridad máxima para toda la organización
Proyectos de resiliencia en curso
- Enhanced Rollouts & Versioning
- Aplicar despliegue gradual, validación de salud y capacidad de rollback rápido también a cambios de datos de respuesta a amenazas y de configuración
- Streamlined Break Glass Capabilities
- Asegurar la posibilidad de intervención de emergencia también en interacciones entre servicios internos y plano de control
- Manejo de errores Fail-Open
- Ante un error en el archivo de configuración, no bloquear solicitudes y pasar al estado normal por defecto o permitir que el tráfico siga
- Se habilitará una opción para elegir entre fail-open/fail-closed en algunos servicios
- Los detalles completos de todos los proyectos de resiliencia se compartirán la próxima semana
- Hasta entonces se mantiene un lockdown con cambios de red en pausa total
Cronograma (UTC)
- 08:47 – Inicio del despliegue de cambio de configuración y propagación en red
- 08:48 – Inicio del impacto total
- 08:50 – Declaración del incidente por alerta automática
- 09:11 – Inicio de reversión del cambio
- 09:12 – Finalización de la recuperación, normalización de todo el tráfico
Conclusión
- Cloudflare reconoció la gravedad de dos incidentes consecutivos y pidió disculpas a sus clientes y al internet en general
- Busca prevenir eventos similares mejorando seguridad del despliegue, tolerancia a fallos y resiliencia
1 comentarios
Opiniones de Hacker News
Esta caída de Cloudflare no fue solo un bug simple de Lua, sino un incidente que dejó al descubierto un problema arquitectónico de fondo.
La estructura web distribuida original era mucho más resistente a este tipo de fallas globales. En cambio, los sistemas centralizados y homogéneos como Cloudflare pueden detener servicios de todo el mundo al mismo tiempo por un solo error. Aunque esté escrito en Rust, la gente igual se equivoca. Al final, lo importante es un diseño robusto
Anoche vi errores 500 de Cloudflare en varios sitios. Pero en la página de estado no había ninguna mención, solo avisos de mantenimiento programado
Parece que la ingeniería de calidad de Cloudflare no está logrando seguir el ritmo de producción. He escuchado que en la industria de defensa antes el equipo de calidad siempre era más experimentado, pero en software parece ser al revés
La estructura de conmutación de paquetes de internet originalmente fue diseñada para resistir este tipo de caídas globales.
En tiempos de la Guerra Fría, la red de DARPA tenía como objetivo mantener la cadena de mando incluso bajo un ataque nuclear.
Ahora es precisamente cuando deberíamos volver al paradigma local-first de internet
Últimamente siento que Cloudflare está haciendo internet más lento e incómodo. Han aumentado procesos como “demuestra que eres humano”, y también se retrasa la carga de páginas.
Parece que esto se debe más a la política de cobro a crawlers de IA que a la protección de los sitios (Presentación de Pay-per-crawl)
La configuración global de Cloudflare es riesgosa porque se propaga por toda la red en segundos, sin rollout gradual.
Hace falta un sistema que pueda correlacionar de inmediato cuando un cambio de configuración provoca errores
Quien hizo el despliegue debió estar viendo métricas en tiempo real y presionar de inmediato el botón de rollback.
Incluso quedó registrado claramente hasta la línea de código, pero parece que había una desconexión entre el equipo de despliegue y el equipo que entendía el código
El uptime de Cloudflare cayó por debajo de 99.9%. Está peor que la PC de mi casa
A la escala de Cloudflare, tiene que haber sí o sí un entorno de pruebas.
Todos los cambios deberían simularse en un entorno modelo aislado y luego desplegarse gradualmente.
Más importante que un sistema de tipos fuerte son las salvaguardas procedimentales
Los equipos que se equivocan seguido van más lento, y los más confiables avanzan más rápido.
Al final, la velocidad técnica es una cuestión de elección. Si aparece una amenaza al SLA, hay que bajar la velocidad y reforzar las pruebas
Parece que la calidad del software de Cloudflare está tambaleando.
También hubo un bug donde la verificación de acceso para una función solo para empresas se hacía solo en la última etapa
Solo se podía cambiar pasando por soporte, y arreglarlo tomó varios días
Enlace al caso relacionado
Me da curiosidad la cultura operativa de Cloudflare.
Ocurrió un error mientras respondían a un problema de seguridad, y aun así hicieron otro despliegue global en vez de hacer rollback; fue una decisión riesgosa.
En la práctica, rompieron el principio básico de “si hay dudas, haz rollback”
Si retrasaban el despliegue, los clientes podían ser hackeados de verdad, así que era un caso donde la velocidad era seguridad
La primera corrección dejó expuesto el bug potencial del segundo, así que a veces roll forward resulta más realista que rollback
Las caídas frecuentes recientes podrían ser una señal de que esa deuda ya se está haciendo visible