Alguns bugs podem ser corrigidos em poucas horas, outros exigem um pouco mais de tempo, e depois estão aqueles que arruínam o fim de semana de qualquer um. Cloudbleed se encaixa nessa última categoria. Graças a um esforço combinado entre engenheiros do Google e da equipe da Cloudflare, os efeitos negativos da vulnerabilidade já foram neutralizados, mas o problema é que os sites apoiados pelo provedor de CDN e segurança vazaram dados privados durante meses, e não se sabe se alguém com más intenções estava escutando....
Tudo começou com um tweet enviado por Tavis Ormandy do Project Zero do Google à equipe de segurança da Cloudflare: “Falem comigo com urgência”. Isso foi no dia 17 de fevereiro. Sexta-feira. Em questão de horas, a Cloudflare determinou que sua plataforma sofria uma das vulnerabilidades web mais sérias dos últimos tempos, com características semelhantes às do Heartbleed. A empresa levou menos de uma hora (44 minutos para ser exato) para implementar seu plano inicial de mitigação, o que, de certo ponto de vista, fala maravilhas. Mesmo com o fim de semana pela frente, a Cloudflare coordenou equipes em San Francisco e Londres para reproduzir o problema, detectar a causa e, posteriormente, esmagar o bug. Sua explicação ao público... demorou um pouco mais.
Em termos simples, Cloudbleed foi um estouro de buffer. A Cloudflare decidiu usar um novo analisador sintático (parser) HTML, o cf-html, para substituir seu parser atual baseado em Ragel. Ao adaptar o código do cf-html e do Ragel à sua plataforma, foi introduzido um bug (que não está nos parsers, mas sim na implementação da Cloudflare) por meio do qual a informação processada era escrita em outro lugar mesmo depois de ter preenchido o buffer. E a chave aqui é “em outro lugar”. A informação vazada parece fora de contexto, lixo, se você preferir. No entanto, a análise de Ormandy detectou elementos muito perturbadores, desde senhas e cookies até chaves de criptografia, solicitações HTTPS, mensagens privadas e reservas de hotéis. A bomba cai com o detalhe de que o Google e outros buscadores vinham absorvendo essas informações em seus sistemas de cache... e que a primeira falha remonta a setembro do ano passado.
Como isso afeta o usuário? Se você usa algum site ou serviço protegido pela Cloudflare, o recomendado é trocar a senha. Os dados disponíveis sugerem mais de quatro milhões de sites potencialmente afetados, e na lista encontramos nomes como Patreon, Yelp, OKCupid, BitPay, Uber, 1Password, Zendesk, Medium, Bitdefender, Pastebin, FitBit, Change.org, Feedly, Adafruit... é impossível citar todos. A lista completa está disponível junto a um resumo aqui, ou, como alternativa, recomenda-se usar o CloudBleedCheck para conferir os domínios afetados. Tecnicamente, já se passaram dez dias desde o Cloudbleed, mas ainda há caches para purgar.