0.1.2 es la version stable activa (canal latest). Todas las
betas previas y las versiones 0.1.0/0.1.1 estan hard-deprecadas
en npm.
| Version | Soportada | Razon |
|---|---|---|
0.1.2 (latest) |
si | canal stable; primer release stable de @netzi/recall promovido desde 0.1.2-beta.6. Consolida 8 fixes del cycle 0.1.2-beta.* (B-MCP-1..8 + carryover serverInfo.version). |
0.1.2-beta.6 |
no | superseded por 0.1.2 stable (mismo codigo, distinto dist-tag) |
0.1.2-beta.5 |
no | superseded; cerro B-MCP-8 |
0.1.2-beta.4 |
no | superseded; cerro B-MCP-7 |
0.1.2-beta.3 |
no | superseded; cerro B-MCP-2..5 |
0.1.2-beta.0 |
no | superseded por 0.1.2-beta.3 |
0.1.1 |
no | hard-deprecada por bugs B-MCP-2..5/7/8 (cerrados en el cycle beta) y carryover serverInfo.version. Migrar a 0.1.2. |
0.1.0 |
no | hard-deprecada por B-MCP-1 (Phase-8). Migrar a 0.1.2. |
Roadmap de v0.5+: ver HANDOFF.md §6.21 + release notes.
No abras issues publicos para vulnerabilidades. Si encuentras una, reporta de forma privada por uno de estos canales:
- GitHub Private Vulnerability Reporting (preferido): https://github.com/NetziTech/recall/security/advisories/new
- Email:
henry@nexusapps.netcon asunto[security] @netzi/recall: <breve resumen>
Incluye:
- Version afectada (
recall --versiononpm list -g @netzi/recall) - Repro steps minimos
- Impacto esperado (RCE, data leak, DoS, etc.)
- Si tienes un fix propuesto, mejor
| Severidad | Acuse de recibo | Fix target |
|---|---|---|
| Critical (RCE, key leak, data corruption) | <48h | <7 dias |
| High | <72h | <14 dias |
| Medium | <1 semana | proximo release |
| Low | <2 semanas | backlog v0.5+ |
Trabajamos en horario LATAM/Madrid; respuestas pueden retrasarse en fines de semana y feriados.
Documentadas en ADR-004 y release notes:
- GHSA-34x7-hfp2-rc4v —
tar@6.xpath-traversal en extraccion - GHSA-83g3-92jg-28cx —
tar@6.xsymlink poisoning
Ambas heredadas via fastembed@^2.0.0 (que usa tar@6 y rompe con
tar@7 por incompat ESM). Vector real: download de modelos
embedding desde GCS de Qdrant (no HuggingFace, contrario a la doc
v0.1.0). Likelihood real bajo (compromise de bucket GCS o TLS MITM
con CA comprometida). Reapertura prevista en v0.5: swap a
@huggingface/transformers si fastembed no publica con tar@7 antes.
recall corre como CLI single-user, sin red expuesta. La superficie
de ataque relevante es:
- Datos persistidos (
<proyecto>/.recall/recall.db):- Modo encriptado: SQLCipher AES-256, KDF argon2id (memoria 64 MiB, 3 iter, 4 parallelism — OWASP 2024).
- Modo privado: archivo en
.gitignore, permisos heredados del FS. - Modo compartido: en git plano (responsabilidad del equipo).
- Secrets en texto que se intentan persistir como memoria:
detectados en 5 capas (regex, entropy Shannon, path sanitizer,
pre-commit hook, audit log) — modulo
secrets/. - Path traversal en migraciones:
MigrationsRunnerfiltra entries con regex^(\d+)__([\w-]+)\.sql$antes depath.join. - Logger redaction: pino con
DEFAULT_REDACT_PATHS(13 keys- wildcards) evita leak de claves/passphrase a stdout.
Detalle: docs/11-seguridad-modos.md.
Cada PR a main o develop corre el workflow
ci que incluye SonarQube quality gate
strict:
- Reliability rating A
- Security rating A
- Security review rating A
- 0 vulnerabilities, 0 bugs
- 0 blockers, 0 critical
Si el gate falla, el PR no merge.
Resultados publicos: https://sonar.netzi.dev/dashboard?id=recall.