# retire.js: detectando dependencias JavaScript vulnerables

> Cómo instalar y ejecutar retire.js, y cómo convertir un match de biblioteca vulnerable en un finding sobre el que el cliente pueda actuar.

`retire.js` identifica bibliotecas JavaScript con vulnerabilidades conocidas. Fingerprintea versiones de biblioteca a partir del contenido de archivos y URLs, luego las compara contra una base de vulnerabilidades. Es una de las pocas comprobaciones que funciona igual de bien desde fuera — no necesitas el repositorio de código, solo el bundle que el sitio sirve.

## Instalación

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

## Comandos principales

```bash
# un directorio de proyecto
retire --path ./frontend

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

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

# umbral de severidad
retire --path ./frontend --severity high
```

Para escaneo remoto, descarga los bundles primero y escanea el directorio — la extensión de navegador cubre comprobaciones puntuales pero no se automatiza bien.

## Salida

```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"]}]}]}
```

## Dónde encaja en Tandera

retire.js se ejecuta en la fase de **analyze** de `recon_web_lite` y `recon_web_full`, contra los assets JavaScript recuperados durante el crawl. Como no necesita payloads activos, está permitido en el flujo lite `NonIntrusive`.

Sus identificadores de CVE mapean al catálogo de findings, así que una biblioteca vulnerable se convierte en un finding con CVE, una puntuación CVSS y contexto EPSS en lugar de una cadena bruta de versión.

## Uso en un pentest

**Los findings basados en versión necesitan contexto de explotabilidad o son ruido.** "jQuery 1.8.3 tiene CVE-2015-9251" es cierto y casi inútil por sí solo. El cliente necesita saber si el camino de código vulnerable es alcanzable en esta aplicación. Compruébalo antes de asignar una severidad.

**Comprueba la CDN, no solo el bundle.** Las aplicaciones frecuentemente cargan un framework moderno localmente y una biblioteca utilitaria antigua desde una CDN. La copia de la CDN es la que nadie rastrea.

**Prefiere la versión al CVE en la remediación.** "Actualiza jQuery a 3.5.0 o superior" es accionable. Una lista de identificadores de CVE es una tarea de investigación que le estás devolviendo al cliente.

---

Canonical: https://tandera.io/es/tools/retirejs
This page as markdown: https://tandera.io/es/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`.
