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

> Como instalar e executar o retire.js, e como transformar um match de biblioteca vulnerável em um finding sobre o qual o cliente pode agir.

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

```bash
npm install -g retire
```

## Comandos principais

```bash
# 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

```json
{"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.

---

Canonical: https://tandera.io/pt-br/tools/retirejs
This page as markdown: https://tandera.io/pt-br/tools/retirejs.md
Index for agents: https://tandera.io/llms.txt

Every page here is also available as markdown: append `.md` to the path (e.g. `/recon.md`, `/index.md` for this homepage, `/blog/<slug>.md`), or request the canonical path with `Accept: text/markdown`.
