Pular para o conteúdo

Incidente · Sênior

Cloudflare nov/2025: arquivo de features dobra de tamanho e o proxy entra em pânico

Incidente real. Pontos centrais: deploy progressivo.

14 min de leitura · Incidente em 2025-11, durou · Fonte: Cloudflare · Conteúdo revisado em 22 de outubro de 2026

Resposta curta

Incidente real. Pontos centrais: deploy progressivo. Em 18 de novembro de 2025, a partir das 11:20 UTC, a rede da Cloudflare começou a falhar de forma significativa na entrega de tráfego central. O post-mortem oficial da empresa é a fonte deste caso e descarta ataque: o problema não foi causado, direta ou indiretamente, por ataque cibernético nem por atividade maliciosa.

01 · CONTEXTO

Um arquivo de características que dobrou de tamanho

Em 18 de novembro de 2025, a partir das 11:20 UTC, a rede da Cloudflare começou a falhar de forma significativa na entrega de tráfego central. O post-mortem oficial da empresa é a fonte deste caso e descarta ataque: o problema não foi causado, direta ou indiretamente, por ataque cibernético nem por atividade maliciosa.

O gatilho foi uma mudança nas permissões de um dos sistemas de banco de dados da empresa, que fez o banco gravar várias entradas num “feature file” usado pelo sistema de Bot Management. O arquivo dobrou de tamanho e foi propagado a todas as máquinas da rede. O software que o lê tinha um limite de tamanho abaixo do tamanho dobrado, e falhou.

O arquivo existe porque o Bot Management inclui um modelo de aprendizado de máquina que gera uma pontuação de bot para cada requisição, e o modelo lê esse arquivo de características. Ele é atualizado a cada poucos minutos e publicado em toda a rede; a Cloudflare considera crítico publicá-lo com frequência e rapidez porque os atacantes mudam de tática depressa.

02 · O GATILHO

Uma consulta sem filtro e um limite de memória pré-alocada

O arquivo é gerado por uma consulta a um cluster ClickHouse. Essa consulta não filtra pelo nome do banco de dados, e depois da mudança das 11:05 passou a devolver colunas duplicadas, vindas das tabelas subjacentes.

  1. O arquivo de características é gerado por uma consulta que roda num cluster ClickHouse, a cada cinco minutos.

    Diagrama da arquitetura: Do cluster ClickHouse ao proxy
    DBCluster ClickHouse
    CPGeração do arquivo
    QFila de distribuição
    CPProxy central
  2. Às 11:05, a mudança de permissões torna explícito o acesso às tabelas subjacentes; a consulta, sem filtro de banco, passa a devolver colunas duplicadas.

    Diagrama da arquitetura: Do cluster ClickHouse ao proxy
    DBCluster ClickHousepermissões
    CPGeração do arquivo
    QFila de distribuição
    CPProxy central
  3. O arquivo gerado passa a ter muitas linhas de características duplicadas e dobra de tamanho.

    Diagrama da arquitetura: Do cluster ClickHouse ao proxy
    DBCluster ClickHouse
    CPGeração do arquivoarquivo dobrado
    QFila de distribuição
    CPProxy central
  4. O arquivo maior é propagado a todas as máquinas que compõem a rede.

    Diagrama da arquitetura: Do cluster ClickHouse ao proxy
    DBCluster ClickHouse
    CPGeração do arquivo
    QFila de distribuição
    CPProxy central
  5. O arquivo com mais de 200 características atinge o limite do módulo e o sistema entra em pânico.

    Diagrama da arquitetura: Do cluster ClickHouse ao proxy
    DBCluster ClickHouse
    CPGeração do arquivo
    QFila de distribuição
    CPProxy centralpânico
  6. A correção interrompe a geração e a propagação do arquivo ruim, insere manualmente um arquivo bom na fila de distribuição e força o reinício do proxy central.

    Diagrama da arquitetura: Do cluster ClickHouse ao proxy
    DBCluster ClickHouse
    CPGeração do arquivo
    QFila de distribuiçãoarquivo bom
    CPProxy central

Cada módulo do proxy tem limites para evitar consumo ilimitado de memória e para pré-alocar memória por desempenho. No Bot Management, o limite era de 200 características, bem acima das cerca de 60 em uso. O arquivo ruim, com mais de 200, atingiu o limite e o sistema entrou em pânico.

O código em Rust do FL2 que faz essa checagem foi a origem de um erro não tratado: o pânico registrado foi uma chamada a unwrap sobre um valor de erro, e isso resultou numa resposta 5xx.

O limite em si é uma defesa razoável de memória. O que merece discussão é o que o módulo faz quando recebe uma entrada que o excede: recusar o arquivo novo e continuar com o anterior, ou deixar o erro subir e falhar a requisição.

03 · O ALCANCE

Um módulo, vários dependentes

O Bot Management é um dos módulos do proxy central, e foi a origem da queda. O proxy central devolveu erros HTTP 5xx a todo tráfego que dependia do módulo de bots.

  1. Toda requisição termina nas camadas HTTP e TLS e depois entra no proxy central.

    Diagrama da arquitetura: Proxy central e seus dependentes
    CLUsuários
    CPProxy central
    DBWorkers KV
    CPAccess
    CPDashboard e login
    CPVersão anterior do proxy
  2. Workers KV e Access dependem do proxy central e foram afetados.

    Diagrama da arquitetura: Proxy central e seus dependentes
    CLUsuários
    CPProxy central
    DBWorkers KVerros
    CPAccesserros
    CPDashboard e login
    CPVersão anterior do proxy
  3. O Dashboard foi afetado pelo uso interno do Workers KV e pelo Turnstile no login.

    Diagrama da arquitetura: Proxy central e seus dependentes
    CLUsuários
    CPProxy central
    DBWorkers KV
    CPAccess
    CPDashboard e loginlogin
    CPVersão anterior do proxy
  4. Um patch no Workers KV e desvios no Access fizeram os dois voltar a uma versão anterior do proxy central, onde o problema existia com impacto menor.

    Diagrama da arquitetura: Proxy central e seus dependentes
    CLUsuários
    CPProxy central
    DBWorkers KV
    CPAccess
    CPDashboard e login
    CPVersão anterior do proxydesvio
  5. Já com o arquivo corrigido, um acúmulo de logins e novas tentativas elevou a latência do dashboard.

    Diagrama da arquitetura: Proxy central e seus dependentes
    CLUsuários
    CPProxy central
    DBWorkers KV
    CPAccess
    CPDashboard e loginacúmulo
    CPVersão anterior do proxy
O que os clientes viram
Proxy novo (FL2)Erros HTTP 5xx
Proxy antigo (FL)Nenhum erro, mas pontuação de bot zero em todo o tráfego
Quem não usava a pontuação de bot nas regrasNenhum impacto

Além dos erros 5xx, a latência da CDN aumentou de forma significativa. A fonte atribui isso ao uso intenso de CPU pelos sistemas de depuração e observabilidade, que enriquecem automaticamente os erros não tratados com informações extras.

04 · DIAGNÓSTICO

Oscilação, suspeita de ataque e a volta

O arquivo era gerado a cada cinco minutos por uma consulta num cluster ClickHouse que estava sendo atualizado aos poucos. Dados ruins só saíam quando a consulta rodava numa parte já atualizada, de modo que a cada ciclo havia chance de sair um conjunto de arquivos bom ou ruim, propagado rapidamente.

A oscilação tornou confuso o que acontecia, porque o sistema se recuperava e voltava a falhar. A equipe suspeitou inicialmente, por engano, de um ataque DDoS de hiperescala. A página de status também ficou fora do ar, por coincidência, e isso reforçou a suspeita em parte da equipe.

A investigação inicial partiu do sintoma de resposta degradada no Workers KV, e foram tentadas mitigações como manipulação de tráfego e limitação de contas nesse serviço.

EtapaO que a fonte registra
Mudança no bancoA mudança de controle de acesso foi implantada
Chegada aos clientesA implantação chegou aos ambientes dos clientes e surgiram os primeiros erros
ContençãoA criação e a propagação de novos arquivos do Bot Management foram interrompidas
CorreçãoUm arquivo correto foi implantado globalmente e a maioria dos serviços voltou a operar
EncerramentoOs serviços downstream foram reiniciados e as operações totalmente restauradas

Os erros continuaram até a causa ser identificada e resolvida, a partir das 14:30. A cauda longa foi a equipe reiniciando serviços que tinham entrado em estado ruim, com o volume de 5xx voltando ao normal às 17:06.

05 · LIÇÕES

O que a Cloudflare se propôs a mudar

Entre os passos de remediação, a Cloudflare listou: endurecer a ingestão de arquivos de configuração gerados por ela mesma, como faria com entrada de usuário; habilitar mais kill switches globais para funcionalidades; eliminar a possibilidade de core dumps ou outros relatórios de erro sobrecarregarem recursos do sistema; e revisar os modos de falha das condições de erro em todos os módulos do proxy central.

Um arquivo gerado por outro componente interno continua sendo entrada para quem o consome. Validar formato, tamanho e quantidade de itens antes de aplicar, e ter à mão uma versão anterior boa, são perguntas de projeto de disponibilidade.

Pergunta para discussão: o que muda no desenho se um arquivo que precisa chegar depressa a toda a rede passar por uma etapa de validação e por um lançamento em ondas, no estilo dos padrões de nuvem de implantação gradual? O que se ganha e o que se perde em velocidade?

Perguntas frequentes

O que é Cloudflare nov/2025: arquivo de features dobra de tamanho e o proxy entra em pânico?

Incidente real. Pontos centrais: deploy progressivo.

O que o design de Cloudflare nov/2025: arquivo de features dobra de tamanho e o proxy entra em pânico cobre?

Ele está organizado nestas seções: Um arquivo de características que dobrou de tamanho, Uma consulta sem filtro e um limite de memória pré-alocada, Um módulo, vários dependentes, Oscilação, suspeita de ataque e a volta e O que a Cloudflare se propôs a mudar.

Quanto tempo leva Cloudflare nov/2025: arquivo de features dobra de tamanho e o proxy entra em pânico e qual é o nível?

Leva cerca de 14 minutos para ler e tem nível Sênior.

Agora projete você mesmo

Rode este caso como uma entrevista na escola de System Design: você toma as decisões, o tutor as questiona e você vê a nota do seu desenho.