- Em 5 de dezembro de 2025 às 08:47 UTC, uma interrupção grave afetou parte da rede da Cloudflare e foi completamente restaurada 25 minutos depois, às 09:12
- Cerca de 28% de todo o tráfego HTTP foi impactado, e apenas clientes que atendiam a critérios específicos sofreram a interrupção
- A causa foi uma alteração na lógica de parsing do body do WAF feita durante a mitigação da vulnerabilidade do React Server Components (CVE-2025-55182), sem relação com ataque cibernético
- O erro de código no proxy FL1 causou erros HTTP 500, enquanto o novo proxy FL2, baseado em Rust, não apresentou o mesmo erro
- A Cloudflare reconheceu que um problema semelhante foi repetido após a interrupção de 18 de novembro e está conduzindo o projeto de melhoria da resiliência e da segurança de implantação como prioridade máxima
Visão geral da interrupção
- Em 5 de dezembro de 2025 às 08:47 UTC houve uma interrupção em parte da rede da Cloudflare
- 09:12 recuperada totalmente, com impacto total de 25 minutos
- Aproximadamente 28% do tráfego HTTP total foi impactado
- A interrupção foi desvinculada de ataques cibernéticos ou ações maliciosas, tendo ocorrido durante uma alteração interna de configuração
- A causa foi uma alteração na lógica de parsing do corpo no WAF para resposta a uma nova vulnerabilidade do React Server Components
Causa e contexto técnico
- O WAF da Cloudflare armazena em buffer o corpo da requisição HTTP na memória para detectar cargas úteis maliciosas
- Estava em andamento a expansão do tamanho padrão do buffer de 128 KB para 1 MB
- Como a ferramenta de teste interna não dava suporte ao novo tamanho de buffer, foi feita uma segunda mudança para desativar a ferramenta de testes
- Essa mudança foi propagada instantaneamente para todos os servidores por meio do sistema de configuração global
- Essa alteração no proxy FL1 causou um estado de erro, gerando resposta HTTP 500
- Mensagem de erro:
attempt to index field 'execute' (a nil value)
- O problema foi rapidamente identificado e a mudança revertida às 09:12
Alcance do impacto
- Apenas clientes usando o proxy FL1 e com o Cloudflare Managed Ruleset aplicado foram impactados
- Todas as requisições desses sites retornaram erro HTTP 500
- Endpoints de teste como
/cdn-cgi/trace foram exceção
- A rede da China e clientes com outras arquiteturas não foram afetados
Detalhes do erro em tempo de execução
- O sistema de rulesets da Cloudflare avalia regras por requisição
- As regras são compostas por filtros e ações, e a ação
execute chama outro conjunto de regras
- O sistema interno de logs avaliava regras de teste usando a ação
execute
- O killswitch foi projetado para desativar regras que começam a falhar, porém
- Esta foi a primeira vez em que o killswitch foi aplicado a uma regra com a ação
execute
- O erro foi causado por tentativa de acesso ao objeto
execute quando ele não existia, gerando erro em Lua
- Esse é um bug simples de código que existia há anos, mas permaneceu não detectado
- No proxy FL2 escrito em Rust, o mesmo erro não ocorreu
Progresso após a interrupção de 18 de novembro
- Em 18 de novembro houve também uma interrupção ampla por implantação global semelhante
- Na época, a Cloudflare se comunicou diretamente com centenas de clientes e compartilhou um plano para evitar a expansão irrestrita de uma única atualização
- Como esse trabalho de melhoria ainda não havia sido concluído, ele impactou esta interrupção
- A Cloudflare classificou isso como prioridade máxima da organização
Projetos de reforço de resiliência em andamento
- Enhanced Rollouts & Versioning
- Aplicar implantação gradual, validação de saúde e rollback rápido também a mudanças de dados e configurações para resposta a ameaças
- Streamlined Break Glass Capabilities
- Garantir capacidade de operação de emergência também durante interações entre serviços internos e o plano de controle
- Tratamento de falhas fail-open
- Em caso de erro de arquivo de configuração, não bloquear a requisição e retornar ao estado normal padrão ou permitir a passagem de tráfego
- Opção de escolha entre fail-open/fail-closed ficará disponível para alguns serviços
- Detalhes de todos os projetos de resiliência serão divulgados até a próxima semana
- Até lá, as mudanças de rede ficarão em estado de lockdown total
Linha do tempo (UTC)
- 08:47 – início da distribuição da mudança de configuração e propagação pela rede
- 08:48 – impacto total
- 08:50 – incidente declarado por alerta automático
- 09:11 – início do rollback da mudança
- 09:12 – recuperação concluída e normalização de todo o tráfego
Conclusão
- A Cloudflare reconheceu a gravidade de duas interrupções consecutivas e pediu desculpas aos clientes e a toda a internet
- Pretende avançar com a prevenção de incidentes semelhantes por meio de maior segurança na implantação, tolerância a erros e reforço da resiliência
1 comentários
Comentários do Hacker News
Esta falha do Cloudflare não foi apenas um bug simples em Lua, mas um incidente que revelou um problema de arquitetura fundamental
A estrutura web distribuída original era muito mais resistente a esse tipo de falha global. Já sistemas centralizados e homogêneos como o Cloudflare podem parar serviços no mundo inteiro ao mesmo tempo por causa de um único erro. Mesmo sendo escrito em Rust, humanos erram. No fim, o que importa é um projeto robusto
Ontem à noite vi erros 500 do Cloudflare em vários sites. Mas não havia nenhuma menção na página de status, só aviso de manutenção programada
Parece que a engenharia de qualidade do Cloudflare não está acompanhando a velocidade de produção. Já ouvi dizer que, antigamente, na indústria de defesa, a equipe de qualidade era sempre mais experiente, mas na indústria de software parece o contrário
A estrutura de comutação de pacotes da internet foi originalmente projetada para resistir a esse tipo de falha global.
Na Guerra Fria, a rede da DARPA tinha como objetivo manter a cadeia de comando mesmo sob ataque nuclear.
Agora é a hora de voltar ao paradigma local-first da internet
Ultimamente tenho a sensação de que o Cloudflare está tornando a internet mais lenta e incômoda. Aumentaram os processos como “prove que você é humano”, e o carregamento das páginas também está mais demorado.
Isso parece estar ligado mais à política de cobrança para crawlers de IA do que à proteção dos sites (Apresentação do Pay-per-crawl)
O sistema de configuração global do Cloudflare é arriscado porque propaga mudanças para a rede inteira em poucos segundos, sem rollout gradual.
Quando uma mudança de configuração causa erro, é preciso haver um sistema que permita identificar imediatamente a correlação
Quem fez o deploy deveria estar olhando métricas em tempo real e apertado imediatamente o botão de rollback.
Até a linha de código aparecia claramente nos logs, mas parece que havia uma desconexão entre a equipe de deploy e quem entendia o código
O uptime do Cloudflare caiu abaixo de 99,9%. Está pior do que o PC da minha casa
Numa escala como a do Cloudflare, é obrigatório existir um ambiente de testes.
Toda mudança deveria ser simulada num ambiente-modelo isolado antes de ser implantada gradualmente.
Mais importante do que um sistema de tipos forte são as proteções processuais
Equipes que erram muito andam mais devagar, e equipes mais confiáveis avançam mais rápido.
No fim, velocidade técnica é uma questão de escolha. Se houver risco ao SLA, é preciso reduzir a velocidade e reforçar os testes
Parece que a qualidade de software do Cloudflare está vacilando.
Houve até um bug em que a validação de acesso de uma função exclusiva para enterprise só era feita na etapa final
Só dava para alterar passando pelo suporte, e a correção levou dias
Link do caso relacionado
Tenho curiosidade sobre a cultura operacional do Cloudflare.
Houve um erro durante a resposta a um problema de segurança, e mesmo assim fizeram outro deploy global em vez de rollback — uma decisão arriscada.
Isso equivale a violar o princípio básico de “na dúvida, faça rollback”
Se atrasassem o deploy, clientes poderiam de fato ser hackeados, então era um caso em que velocidade era segurança
A primeira correção acabou revelando um bug latente na segunda, então às vezes roll forward é mais realista do que rollback
As falhas frequentes recentes podem ser um sinal de que essa dívida está aparecendo