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