Três vulnerabilidades foram encontradas no NPM, que foram corrigidas no NPM 6.13.4

Desenvolvedores quem está no comando do projeto do gerenciador de pacotes NPM, lançado lançado recentemente uma atualização corretiva para NPM 6.13.4 incluído na entrega do Node.js e usado para distribuir módulos JavaScript.

Esta nova versão corretiva do gerenciador era lançado para resolver três vulnerabilidades que permitem que arquivos de sistema arbitrários sejam modificados ou sobrescritos ao instalar um pacote preparado por um invasor.

CVE-2019-16775

Esta vulnerabilidade afeta as versões NPM CLI anteriores a 6.13.3, bem você está eles são vulneráveis ​​à escrita arbitrária de arquivos. Os pacotes podem criar links simbólicos para arquivos fora da pasta node_modules através do campo bin após a instalação.

Uma entrada construída corretamente no campo bin package.json permitiria a um editor de pacote criar um link simbólico apontando para arquivos arbitrários no sistema de um usuário quando o pacote é instalado. Esse comportamento ainda é possível por meio de scripts de instalação.

CVE-2019-16776

Nesta vulnerabilidade, o As versões do NPM CLI anteriores a 6.13.3 são afetadas pela gravação arbitrária de arquivos. Uma vez que você não pode impedir o acesso a pastas fora da pasta node_modules pretendida por meio do campo bin.

Uma entrada construída corretamente no campo bin package.json permitiria a um editor de pacote modificar e acessar arquivos arbitrários no sistema de um usuário quando o pacote é instalado. Esse comportamento ainda é possível por meio de scripts de instalação.

No campo bin, rotas com "/../" foram permitidas

CVE-2019-16777

Finalmente, As versões NPM CLI anteriores a 6.13.4 são vulneráveis ​​a esta vulnerabilidade para uma substituição de arquivo arbitrária. Uma vez que você não pode impedir que outros binários sobrescrevam binários existentes globalmente instalados.

Por exemplo se um pacote foi instalado globalmente e criou um binário de serviço, qualquer instalação subsequente pacotes que também criam um binário de serviço irá sobrescrever o binário do serviço antigo. Este comportamento ainda é permitido em instalações locais e também por meio de scripts de instalação.

Você só pode substituir arquivos no diretório de destino onde os arquivos executáveis ​​estão instalados (geralmente / usr, / local, / bin).

Embora um fator importante para essas vulnerabilidades seja que a pessoa que deseja explorar essas falhas teria que fazer sua vítima instalar o pacote com a entrada de bin especialmente projetada. No entanto, como vimos no passado, esta não é uma barreira intransponível.

A equipe de segurança da npm, Inc. tem verificado o registro em busca de exemplos desse ataque e não encontrou nenhum pacote publicado no registro com este exploit. Isso não garante que não tenha sido usado, mas significa que não está sendo usado atualmente em pacotes publicados no registro.

Continuaremos monitorando e tomando medidas para evitar que atores mal-intencionados explorem essa vulnerabilidade no futuro. No entanto, não podemos verificar todas as fontes possíveis de pacotes npm (registros privados, espelhos, repositórios git, etc.), por isso é importante atualizar o mais rápido possível.

Solução de problemas

Como solução principal, é recomendado que você atualize para a nova versão corretiva, pois as bibliotecas de análise package.json em uso no NPM v6.13.3 foram atualizadas de uma forma que higienizaria e validaria todas as entradas no campo bin para remover o forward barra iniciais, entradas de rota e outros meios de escape de rota, usando o utilitário de rota bem testado e altamente confiável integrado ao Node.js.

Apesar, como solução alternativa, ele pode ser instalado com a opção –Ignore-scripts, que proíbe a execução de pacotes de driver integrados.

Sem mais delongas, se quiser saber mais sobre os bugs, você pode verificar os detalhes na postagem do blog npm no link a seguir.

Por último, para quem deseja instalar a nova versão, pode fazê-lo a partir dos canais oficiais ou optando por compilar a partir do seu código fonte. Para isso, você pode seguir as instruções em o seguinte link.


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.