Skip to main content

Prototype pollution no express-fileupload

Escrito por
Blog illustrations vul profile feature

24 de agosto de 2020

0 minutos de leitura

Boas-vindas ao Monthly Vulnerability Profile da Snyk. Nesta série, a Snyk revisita as vulnerabilidades descobertas ou reportadas à nossa equipe de pesquisa de segurança. Escolhemos uma vulnerabilidade de destaque do mês anterior e contamos a história por trás de sua descoberta, pesquisa e divulgação. Destacamos os pesquisadores, desenvolvedores e usuários que ajudam a identificar e corrigir vulnerabilidades na comunidade de código aberto.

Neste mês, vamos analisar uma vulnerabilidade de prototype pollution descoberta no express-fileupload.


Vulnerabilidade: prototype pollution no express-fileupload

CVEs atribuídos: CVE-2020-7699

Analista da Snyk: Sam Sanoop

Descoberta por: um pesquisador que usa o identificador po6ix

Uma vulnerabilidade de prototype pollution foi descoberta recentemente no popular pacote express-fileupload e registrada como um problema no repositório do GitHub.

O recurso de problemas pode ser uma maneira prática para desenvolvedores e pesquisadores de segurança avisarem os mantenedores de pacotes sobre bugs ou vulnerabilidades de segurança que encontrarem. No entanto, embora essas informações sejam públicas, elas não são amplamente divulgadas às comunidades de segurança e desenvolvimento que precisam estar cientes do problema.

Então, como podemos garantir que vulnerabilidades graves de segurança registradas como problemas no repositório sejam divulgadas de forma mais ampla? Esta história sobre prototype pollution no express-fileupload mostra como a equipe de pesquisa da Snyk está ajudando a lidar com essa questão.

Investigando os detalhes da vulnerabilidade de prototype pollution

Em 25 de julho de 2020, um pesquisador que usa o identificador po6ix registrou um problema no repositório do GitHub do pacote express-fileupload. O relato descreve uma vulnerabilidade de prototype pollution descoberta pelo pesquisador no pacote. Também demonstra como a vulnerabilidade poderia ser usada para executar código remotamente por meio de uma função criada para analisar informações sobre caminhos de arquivos. O pesquisador também publicou uma postagem no blog em seu site, detalhando a vulnerabilidade e apresentando demonstrações de prova de conceito (POC).

Editor de código com tema escuro exibindo uma função JavaScript processNested que processa recursivamente chaves de objetos aninhados.

A equipe de pesquisa de segurança da Snyk busca regularmente problemas em repositórios públicos do GitHub que descrevam possíveis falhas de segurança. A atenção da equipe foi atraída por uma série de problemas registrados por po6ix em um intervalo muito curto, entre eles a vulnerabilidade no pacote express-fileupload. Sam Sanoop, analista de segurança da Snyk, entrou em contato com po6ix para entender melhor a vulnerabilidade e oferecer a ajuda da Snyk na atribuição de CVEs às várias vulnerabilidades descobertas pelo pesquisador.

Após conversar com po6ix sobre as vulnerabilidades, Sam usou as provas de conceito listadas na postagem do blog para reconstruir os ataques. Assim, a Snyk conseguiu confirmar a gravidade e a aplicabilidade da vulnerabilidade.

Após confirmar os detalhes da vulnerabilidade, Sam calculou uma pontuação CVSS de 7,5 — em parte devido à natureza remota dos ataques. Segundo a postagem de po6ix no blog, no fim de julho de 2020, o pacote express-fileupload tinha quase 8 milhões de downloads. A combinação da gravidade da vulnerabilidade com a popularidade do pacote vulnerável tornou essa descoberta especialmente preocupante.

Sam atribuiu o CVE-2020-7699 à vulnerabilidade e criou um relatório detalhado, adicionando-o à Snyk Vulnerability Database. O pesquisador original, po6ix, também recebeu o devido crédito pela descoberta na Snyk Vulnerability Database.

Trecho de código que mostra uma função de mesclagem copiando propriedades de um objeto de origem para um objeto de destino.

Enquanto isso, o mantenedor do pacote implementou uma correção para a vulnerabilidade de segurança na versão 1.1.8. No entanto, o problema não foi totalmente corrigido, e outro usuário do GitHub abriu um relato complementar. Nele, observou que ainda havia uma vulnerabilidade de negação de serviço no pacote, que explorava elementos do mesmo ataque. Em 6 de agosto de 2020, o mantenedor lançou a versão 1.1.10 do pacote, que, segundo a confirmação da Snyk, corrige a vulnerabilidade com sucesso.

Esta história é apenas um exemplo de como a equipe de pesquisa da Snyk trabalha com as comunidades de desenvolvimento e segurança. Nosso objetivo não é apenas garantir que as vulnerabilidades sejam corrigidas nos pacotes, mas também promover a comunicação aberta sobre informações de vulnerabilidade, para que todos possam proteger seus softwares com mais facilidade.

Perdeu nossas publicações anteriores do MVP? Confira abaixo:

Leia mais

Blog

Modelos de ponta encontraram as vulnerabilidades. Só o atacante encontrou as cadeias.

A análise estática encontrou as falhas, mas só os testes de ataque em aplicações ativas provaram como elas poderiam ser encadeadas para causar invasões. Uma comparação entre Evo COS, Claude Security e Claude Code Security.

feature insights context
Blog

Os ataques autônomos já chegaram. A defesa precisa acompanhar o ritmo.

Os atacantes autônomos estão reduzindo o tempo disponível para a defesa. Saiba como a descoberta, a correção, a validação e a prevenção contínuas ajudam as equipes de segurança a acompanhar esse ritmo.

Blog

Seu backlog de vulnerabilidades não é mais uma dívida técnica — é uma superfície de ataque

Um backlog crescente de vulnerabilidades é mais do que uma dívida técnica: ele é uma superfície de ataque. Entenda por que suposições de risco desatualizadas, atacantes automatizados e descobertas encadeadas exigem uma nova abordagem.