Skip to main content
Blog
Blog

A Vulnerabilidade do cdnjs em 2021 em Detalhes

Verificar se as fontes de scripts de terceiros são confiáveis é importante. Mas só isso pode não ser suficiente. Foi o que o mundo aprendeu em 2021, quando uma enorme vulnerabilidade no cdnjs da Cloudflare foi descoberta. Aqui está um resumo do que aconteceu e como. O cdnjs é uma das Redes de Distribuição de Conteúdo (CDNs) JavaScript mais utilizadas atualmente. Mais de 12% de todos os sites na internet injetam pelo menos um script via cdnjs. Um pesquisador com o apelido 'RyotaK' divulgou uma vulnerabilidade na cadeia de

Apr 28, 2024 4 min read
Imagem de capa do artigo A Vulnerabilidade do cdnjs em 2021 em Detalhes

Verificar se as fontes de scripts de terceiros são confiáveis é importante. Mas só isso pode não ser suficiente.

Foi o que o mundo aprendeu em 2021, quando uma enorme vulnerabilidade no cdnjs da Cloudflare foi descoberta. Aqui está um resumo do que aconteceu e como.

O cdnjs é uma das Redes de Distribuição de Conteúdo (CDNs) JavaScript mais utilizadas atualmente. Mais de 12% de todos os sites na internet injetam pelo menos um script via cdnjs. Um pesquisador com o apelido 'RyotaK' divulgou uma vulnerabilidade na cadeia de suprimentos do cdnjs, que permitia a qualquer pessoa na internet realizar alterações nas bibliotecas do cdnjs seguindo uma sequência específica de passos. Confira os achados completos dele.

A vulnerabilidade existia dentro do servidor de atualização de bibliotecas do cdnjs. Esse módulo específico auxilia desenvolvedores a integrar pacotes populares em seus sites de forma segura.

A vulnerabilidade em detalhes

Ao publicar um arquivo .tgz no registro npm com um nome de arquivo especialmente criado para explorar essa falha de path traversal, um atacante poderia acionar o servidor de atualização de bibliotecas do cdnjs para processar o arquivo malicioso. Isso sobrescreveria um arquivo de script executado regularmente, levando à execução arbitrária de comandos nos servidores da Cloudflare.

Para provar a explorabilidade, uma demonstração foi planejada. Ela envolvia a criação de um arquivo .tgz que, ao ser processado pelo mecanismo de atualização do cdnjs, sobrescreveria um script inofensivo com código malicioso. No entanto, antes de executar esse plano, o pesquisador descobriu outro vetor de ataque potente por meio de atualizações de repositórios Git, envolvendo symlinks que poderiam potencialmente ler arquivos arbitrários do servidor de atualização.

Um erro não intencional durante o processo de demonstração levou a uma revelação significativa. Um link simbólico que deveria apontar para um arquivo inofensivo foi direcionado por engano para /proc/self/environ, expondo variáveis de ambiente sensíveis, incluindo GITHUB_REPO_API_KEY e WORKERS_KV_API_TOKEN. Esse erro revelou como um atacante poderia obter acesso à maior parte da infraestrutura do cdnjs, representando um risco de segurança enorme.

Os problemas potenciais

Isso poderia ter resultado em execução remota de código nos servidores da Cloudflare e na possibilidade de executar código malicioso nos scripts utilizados por todos os usuários finais. Isso contorna Web Application Firewalls (WAFs) e qualquer outro mecanismo de filtragem, pois é executado diretamente no próprio navegador.

Como mencionado anteriormente, isso teria exposto mais de 12% dos sites e todos os seus visitantes a um perigo imediato caso fosse explorado (após a expiração dos caches).

A Cloudflare reagiu rapidamente e tomou as medidas adequadas antes que alguém pudesse aproveitar a exploração. Ela é conhecida por seus post-mortems detalhados e muito transparentes sobre incidentes. Os detalhes completos podem ser lidos aqui.

A forma mais segura de fazer isso

Tudo isso demonstra que não basta confiar nas fontes.

Até os melhores do mundo estão sujeitos a erros. Uma abordagem mais segura é verificar o que essas fontes entregam.

É por isso que o cside existe. Oferecemos um pequeno script para adicionar a uma página web, que faz 2 coisas:

  • Reescreve as origens dos scripts para roteá-los pelo cside. Isso coloca o cside no fluxo da requisição entre o usuário e o script de terceiros, permitindo total visibilidade sobre os scripts servidos. Não apenas colocamos fontes em uma lista de permissões, mas analisamos profundamente cada script, em 100% das sessões. Em alguns casos, otimizações podem até ser feitas por meio do cache de scripts estáticos.
  • Realiza verificações de comportamento no lado do navegador.

O cside também monitora mais de 60 atributos e usa IA para sinalizar em tempo real quaisquer indicadores de intenção maliciosa. Nossa solução leva em conta o contexto histórico, o que significa que mudanças ao longo do tempo são consideradas, facilitando a identificação de sequestros. Além disso, o cside usa IA para analisar o código do script de terceiros. A combinação dos nossos mecanismos de detecção em constante evolução significa que conseguimos identificar a tentativa em milissegundos e bloqueá-la antes que qualquer operação maliciosa ocorra — ou emitir um alerta caso um comportamento perigoso seja detectado.

Comece a usar o cside hoje mesmo.

Simon Wijckmans
Founder & CEO

Founder and CEO of cside. Previously a product manager on Cloudflare Page Shield (now Cloudflare Client-Side Security). Co-chair of the W3C Anti-Fraud Community Group and a Forbes 30 Under 30 honoree. Building accessible security against client-side attacks — web security is not an enterprise-only problem.

Monitore e Proteja Seus Scripts de Terceiros

Gain full visibility and control over every script delivered to your users to enhance site security and performance.

Comece grátis, ou experimente o Business com um teste de 14 dias.

Interface do painel cside mostrando monitoramento de scripts e análises de segurança
Related Articles
Agende uma demonstração