From d2b3e89e0ee51115e5c03497b06b4c9eb883001c Mon Sep 17 00:00:00 2001 From: Enmanuel Date: Sat, 7 Mar 2026 19:19:47 +0000 Subject: [PATCH] docs: documentar desglose multi-issue de 0019 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Añade seccion "Desglose multi-issue" al issue 0019 con: - Tabla de sub-issues (0019a-d), rama, alcance y estado - Checklist de progreso por tarea agrupado por fase - 0019a (tool hardening) marcado como completado Esto permite trackear el avance de features multi-issue directamente en el documento del issue. Co-Authored-By: Claude Opus 4.6 --- dev/issues/0019-prompt-injection-hardening.md | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/dev/issues/0019-prompt-injection-hardening.md b/dev/issues/0019-prompt-injection-hardening.md index 51ae48a..ccd994d 100644 --- a/dev/issues/0019-prompt-injection-hardening.md +++ b/dev/issues/0019-prompt-injection-hardening.md @@ -101,6 +101,62 @@ agents/*/config.yaml MOD — storage.base_path fuera del proyecto --- +## Desglose multi-issue + +Este issue es demasiado grande para una sola rama. Se desglosa en sub-issues con feature flag `prompt-injection-hardening` (OFF hasta completar todo). + +| Sub-issue | Rama | Alcance | Fases | Estado | +|-----------|------|---------|-------|--------| +| **0019a** | `issue/0019a-tool-hardening` | Deny-by-default en tools, path traversal, SSRF, SSH allowlist + syntax, Matrix room auth | 1 (parcial), 5, 6 (parcial) | **completado** | +| **0019b** | `issue/0019b-input-sanitization` | `pkg/sanitize/` + integracion en runtime.go | 2, 6 (parcial) | pendiente | +| **0019c** | `issue/0019c-rate-limiting` | Rate limiting de tools por agente+room en registry | 4, 6 (parcial) | pendiente | +| **0019d** | `issue/0019d-prompt-hardening-docs` | Hardening de system prompts + docs + activar flag | 1 (restante: base_path), 3, 7 | pendiente | + +### Progreso por tarea + +#### Fase 1 — completado parcial (0019a) +- [x] **1.3** `tools/file.go`: deny-by-default (AllowedPaths vacio = todo denegado) +- [x] **1.4** `tools/file.go`: path traversal con EvalSymlinks, proteccion contra `../` y prefix confusion +- [x] **1.5** `tools/ssh.go`: AllowedCommands allowlist + validacion de sintaxis shell +- [ ] **1.1** Mover `storage.base_path` default (pendiente 0019d) +- [ ] **1.2** Actualizar schema con nuevo default (pendiente 0019d) + +#### Fase 2 — pendiente (0019b) +- [ ] **2.1** `pkg/sanitize/patterns.go` +- [ ] **2.2** `pkg/sanitize/sanitize.go` +- [ ] **2.3** Integracion en `agents/runtime.go` + +#### Fase 3 — pendiente (0019d) +- [ ] **3.1** Template anti-injection para system prompts +- [ ] **3.2** Aplicar a assistant-bot +- [ ] **3.3** Aplicar a asistente-2 +- [ ] **3.4** Documentar en regla create_agent.md + +#### Fase 4 — pendiente (0019c) +- [ ] **4.1** Rate limiter por agente+room en registry +- [ ] **4.2** Config via `security.tool_rate_limit` +- [ ] **4.3** Loguear al alcanzar limite + +#### Fase 5 — completado (0019a) +- [x] **5.1** SSH: validacion de pipes, subshells, redirects, chains +- [x] **5.2** HTTP: SSRF protection (bloqueo de IPs privadas, loopback, link-local, metadata) +- [x] **5.3** Matrix: AllowedRooms para restringir rooms destino + +#### Fase 6 — completado parcial +- [x] **6.2** Tests path traversal en file.go (0019a) +- [x] **6.3** Tests SSH allowlist/blocklist (0019a) +- [x] **6.4** Tests SSRF en http.go (0019a) +- [ ] **6.1** Tests para `pkg/sanitize/` (0019b) +- [ ] **6.5** Tests para rate limiting (0019c) + +#### Fase 7 — pendiente (0019d) +- [ ] Actualizar CLAUDE.md +- [ ] Actualizar create_tool.md +- [ ] Actualizar create_agent.md +- [ ] Documentar en docs/security.md + +--- + ## Ejemplo de uso ```