El incidente de Cloudflare del 2 de julio de 2019 fue causado por el despliegue de una regla WAF con una expresión regular (regex) catastrófica. La regex, diseñada para detectar patrones específicos, contenía un patrón como `(?:(?:"|[^"]+)+)` que, al ser evaluado contra ciertas entradas maliciosas o inesperadas, exhibía un comportamiento conocido como 'backtracking catastrófico'. Esto significa que el motor de regex intentaba un número exponencialmente alto de combinaciones para encontrar una coincidencia, consumiendo una cantidad desproporcionada de ciclos de CPU.

El fallo se propagó globalmente porque la regla WAF se desplegó en todos los servidores edge de Cloudflare. Cada servidor edge, al procesar el tráfico de los clientes, intentaba evaluar esta regex. Dado que no existían límites de CPU por worker o un sandbox de ejecución para las regex, un solo worker podía consumir el 100% de la CPU del core asignado, y eventualmente, de todo el servidor. La naturaleza global del despliegue y la falta de aislamiento de recursos permitieron que un problema localizado en la lógica de una regla se convirtiera en una interrupción de servicio a escala mundial.

Las salvaguardas que fallaron incluyen la ausencia de un mecanismo de 'CPU throttling' o 'resource limits' para la ejecución de regex o workers individuales. No había un 'circuit breaker' que detectara el consumo excesivo de recursos por una regla específica y la deshabilitara automáticamente o la ejecutara en un entorno aislado. Además, el proceso de 'testing' y 'validation' de las reglas WAF no detectó este comportamiento catastrófico antes del despliegue a producción, posiblemente porque las pruebas no incluían casos extremos o 'edge cases' diseñados para explotar el backtracking de regex. La falta de un 'canary deployment' o un despliegue por fases también contribuyó a la propagación instantánea del problema a toda la infraestructura.