Uma falha operacional interna, e não um ataque cibernético, foi a causa de uma pane global de seis horas nos serviços do Cloudflare na última quinta-feira (20). O incidente, que afetou aproximadamente 25% de todos os prefixos de IP do serviço Bring Your Own IP (BYOIP) da empresa, retirou rotas BGP da internet, tornando inacessíveis sites e aplicações de milhares de clientes.
O que desencadeou a pane
A causa raiz foi um bug em uma sub-tarefa automatizada de limpeza dentro da API de Endereçamento da empresa. A tarefa, parte da iniciativa de resiliência "Code Orange: Fail Small", foi projetada para substituir processos manuais de remoção de prefixos BYOIP. No entanto, um erro de codificação fez com que uma consulta à API passasse um sinalizador pending_delete sem valor atribuído. O servidor interpretou a string vazia como um comando para colocar em fila para exclusão todos os prefixos BYOIP retornados, e não apenas os marcados para remoção.
Impacto e alcance
O processo defeituoso deletou sistematicamente cerca de 1.100 prefixos BYOIP e suas vinculações de serviço dependentes antes de ser interrompido manualmente por um engenheiro. As conexões impactadas entraram imediatamente em um estado conhecido como "BGP Path Hunting", onde as tentativas de conexão falham após timeout. O raio de impacto se estendeu por múltiplos produtos core que dependem de configurações BYOIP, incluindo:
- CDN e Serviços de Segurança Core: O tráfego falhou em rotear para o Cloudflare, resultando em timeouts para sites anunciados.
- Spectrum: Aplicações operando em BYOIP falharam completamente em fazer proxy de tráfego.
- Dedicated Egress: Usuários utilizando BYOIP ou IPs Dedicados não conseguiram enviar tráfego de saída.
- Magic Transit: Usuários finais conectando-se a aplicações protegidas experimentaram falhas completas de conexão.
O incidente também gerou erros HTTP 403 no site do resolvedor DNS público recursivo 1.1.1.1.
Recuperação complexa e lições aprendidas
A recuperação foi severamente atrasada devido à natureza variada do impacto. Enquanto alguns clientes puderam restaurar o serviço via dashboard, aproximadamente 300 prefixos tiveram suas vinculações de serviço completamente removidas, exigindo restauração manual por engenheiros que precisaram reaplicar configurações em toda a rede de borda.
Em seu relatório oficial, o Cloudflare detalhou a linha do tempo do incidente, que começou às 17:56 UTC e só foi totalmente resolvida às 23:03 UTC. A empresa anunciou medidas para evitar recorrências, incluindo a padronização do esquema da API para prevenir erros de interpretação de sinalizadores, a implementação de circuit breakers para detectar deleções anormalmente rápidas de prefixos BGP e o estabelecimento de snapshots de estado operacional mediados por saúde para separar configurações de clientes de implantações em produção.
Repercussão e confiança
O Cloudflare concluiu seu relatório com um pedido de desculpas direto aos usuários e à comunidade global da internet, reconhecendo que a pane generalizada minou sua promessa central de entregar uma rede altamente resiliente. O incidente serve como um alerta sobre a complexidade e os riscos inerentes à automação de processos críticos em infraestruturas de nuvem de escala global, onde um único erro de configuração pode ter efeitos em cascata de grande magnitude.