Mais 123% CVE comunicadas por dia em 2026 do que no ano passado.

Dependências

npm audit

O npm audit verifica os pacotes do seu projeto face a avisos de segurança conhecidos e reporta o que encontra. Vem com o npm, não custa nada e demora segundos, o que faz dele a análise SCA mais fácil de executar. Saber o que lê diz-lhe o que lhe pode escapar.

Atualizado a

Como funciona o npm audit

O npm audit envia uma descrição das dependências do seu projeto para o seu registo predefinido e pede as vulnerabilidades conhecidas. Precisa de um package-lock.json ou de um ficheiro shrinkwrap, porque é assim que sabe que versões tem. Consulte a documentação do npm para mais pormenores.

npm audit                       # report everything
npm audit --omit=dev            # skip dev dependencies
npm audit --audit-level=high    # fail only on high or critical
npm audit --json                # machine-readable output

Como ler o relatório

  • A gravidade vem do aviso de segurança. Indica a gravidade da falha em geral, não a gravidade para si.
  • O caminho da dependência mostra o que trouxe o pacote. A maioria das conclusões são dependências transitivas, e a correção está normalmente no pacote acima.
  • Desenvolvimento ou produção. Uma falha numa ferramenta de testes não chega aos utilizadores, mas continua a ser executada no seu build, pelo que não a deve ignorar por completo.

Se obtiver uma lista longa, comece pelo que está a ser explorado e pelo que é distribuído. Consulte como priorizar vulnerabilidades.

npm audit fix, e quando não o forçar

Comando O que faz Risco
npm audit fix Aplica atualizações compatíveis dentro dos seus intervalos de versões Baixo. Execute os seus testes na mesma, porque faz uma instalação completa
npm audit fix --force Permite também alterações fora dos seus intervalos, incluindo versões major Alto. Pode estragar a sua aplicação, e o npm diz para não o usar sem uma ideia clara do que pretende

Se não houver uma correção disponível, pode atualizar o pacote pai ou usar o campo overrides no package.json para forçar uma versão transitiva corrigida. Teste-a, porque o pacote pai não foi compilado com essa versão.

Executar o npm audit na CI

Por predefinição, o npm audit termina com um código diferente de zero quando encontra alguma coisa, o que faz o job falhar em cada aviso de baixa gravidade. As equipas definem normalmente um limiar. Tenha em conta que --audit-level apenas altera o limiar de falha e não filtra o relatório.

- run: npm ci
- run: npm audit --omit=dev --audit-level=high

Uma verificação como esta também pode fazer falhar um build sem qualquer alteração de código, porque foi publicado um novo aviso de segurança durante a noite. Decida quem é responsável por essa falha antes de ativar a verificação. Para saber mais, consulte onde executar análises SCA.

O que escapa ao npm audit

  • Tudo o que está fora do npm. A sua imagem base, os pacotes do sistema operativo, as ferramentas Python e as GitHub Actions não estão no package-lock.json.
  • Código obtido durante a instalação. Os scripts de instalação podem descarregar ficheiros que nenhum lockfile regista. Consulte o que um lockfile não regista.
  • Novos pacotes maliciosos. Faz a correspondência com avisos publicados, pelo que um pacote ainda sem aviso passa sem qualquer alerta.
  • O que já foi distribuído. Analisa o projeto que tem à frente. Um novo aviso para a versão do ano passado só aparece se alguém o voltar a executar nessa versão.
  • Se está afetado. Não sabe se o seu código usa a função vulnerável. A análise de alcançabilidade trata disso.

O npm audit signatures é um comando à parte que verifica as assinaturas do registo e as atestações de proveniência dos pacotes que instalou. Verifica de onde veio um pacote, não se é seguro.

npm audit e CRACI

Continue a executar o npm audit nos pull requests. É gratuito e apanha cedo os problemas conhecidos. O CRACI cobre o que ele não consegue ver: como seu runner de GitHub Actions, regista cada pacote que cada job efetivamente obteve do npm e de qualquer outra origem, incluindo pacotes restaurados de caches de CI e ficheiros obtidos por hooks de instalação. Depois, continua a verificar a SBOM do que foi distribuído à medida que são publicadas novas vulnerabilidades. Consulte as melhores ferramentas de SCA ou geração de SBOM durante o build.

npm audit: perguntas frequentes

O que faz o npm audit?

Envia uma descrição das suas dependências para o registo do npm, verifica-as face a avisos de segurança conhecidos e reporta os pacotes vulneráveis, com a respetiva gravidade e a forma como entraram no seu projeto.

O npm audit fix é seguro?

O npm audit fix simples é normalmente seguro, porque se mantém dentro dos seus intervalos de versões, mas execute os seus testes depois. O npm audit fix --force pode instalar novas versões major e estragar a sua aplicação.

Porque é que o npm audit mostra tantas vulnerabilidades?

A maioria vem de dependências transitivas e de ferramentas de desenvolvimento. Use --omit=dev para se concentrar no que é distribuído e priorize pela exploração e pela exposição, não pela contagem.

Como ignorar uma vulnerabilidade no npm audit?

O npm audit não tem uma lista de exclusões integrada. As equipas usam o campo overrides para alterar a versão, um limiar com --audit-level ou uma ferramenta wrapper que regista as conclusões aceites.

O npm audit precisa de um lockfile?

Sim, por predefinição precisa de um package-lock.json ou de um ficheiro shrinkwrap. Pode contornar isso com --no-package-lock, mas os resultados poderão então diferir entre execuções.

O npm audit deteta malware?

Só depois de ter sido publicado um aviso de segurança para o pacote. Um novo pacote malicioso não tem aviso, pelo que não será reportado no dia em que surge.

Veja o que o npm audit não consegue ver

Execute um workflow de GitHub Actions no CRACI e compare a SBOM registada com o seu package-lock.json.

Marcar demo