retire.js: detectando dependências JavaScript vulneráveis

retire.js · Apache-2.0

O retire.js identifica bibliotecas JavaScript com vulnerabilidades conhecidas. Ele fingerprinta versões de biblioteca a partir do conteúdo de arquivos e URLs, depois as compara contra um banco de vulnerabilidades. É uma das poucas verificações que funciona igualmente bem de fora — você não precisa do repositório de código, só do bundle que o site serve.

Instalação

npm install -g retire

Comandos principais

# um diretório de projeto
retire --path ./frontend

# só JavaScript, ignora node_modules
retire --path ./frontend --js --ignore node_modules

# JSON para importar
retire --path ./frontend --outputformat json --outputpath retire.json

# limiar de severidade
retire --path ./frontend --severity high

Para varredura remota, baixe os bundles primeiro e varra o diretório — a extensão de navegador cobre verificações pontuais mas não roteiriza bem.

Saída

{"file":"static/jquery-1.8.3.min.js","results":[{"component":"jquery","version":"1.8.3",
 "vulnerabilities":[{"severity":"medium","identifiers":{"CVE":["CVE-2015-9251"]},
 "info":["https://github.com/jquery/jquery/issues/2432"]}]}]}

Onde ele entra no Tandera

O retire.js roda na fase de analyze do recon_web_lite e do recon_web_full, contra os assets JavaScript recuperados durante o crawl. Como não precisa de payloads ativos, é permitido no fluxo lite NonIntrusive.

Seus identificadores de CVE mapeiam para o catálogo de findings, então uma biblioteca vulnerável vira um finding com CVE, uma pontuação CVSS e contexto EPSS em vez de uma string bruta de versão.

Usando em um pentest

Findings baseados em versão precisam de contexto de explorabilidade ou são ruído. “jQuery 1.8.3 tem CVE-2015-9251” é verdade e quase inútil sozinho. O cliente precisa saber se o caminho de código vulnerável é alcançável nesta aplicação. Verifique antes de atribuir uma severidade.

Verifique a CDN, não só o bundle. Aplicações frequentemente carregam um framework moderno localmente e uma biblioteca utilitária antiga de uma CDN. A cópia da CDN é a que ninguém acompanha.

Prefira a versão ao CVE na remediação. “Atualize o jQuery para 3.5.0 ou superior” é acionável. Uma lista de identificadores de CVE é uma tarefa de pesquisa que você está devolvendo ao cliente.

acesso antecipado

Garanta a Tandera antes do próximo engagement.

Entre na waitlist para acesso antecipado. Estamos integrando times de pentest em ondas.

✓Onboarding prioritário para times de pentest.
✓Linha direta com quem está construindo.
✓Preço de acesso antecipado, garantido.

Sem spam, sem cartão. Cancele quando quiser.

enespt-br