diff --git a/docs/devsecops/trivyignore-review.md b/docs/devsecops/trivyignore-review.md new file mode 100644 index 0000000..daad37d --- /dev/null +++ b/docs/devsecops/trivyignore-review.md @@ -0,0 +1,46 @@ +# Revisión de excepciones en `.trivyignore` + +Cada `.trivyignore` en este repo (por ejemplo +`workloads/commerce-backend/.trivyignore`) es una lista de CVEs excepcionadas +del gate CRITICAL de Trivy, con justificación y fecha por entrada. No es un +mecanismo para silenciar hallazgos sin revisar — cada excepción está atada a +una versión concreta de una dependencia, y deja de tener sentido en cuanto esa +dependencia cambia. + +## Riesgo si no se revisa + +Una excepción vieja que sigue activa después de un bump de versión puede +ocultar CVEs **nuevas y no relacionadas** que Trivy habría detectado, si el +número de CVE cambia entre versiones del mismo paquete pero el `.trivyignore` +no se actualiza. La excepción se vuelve permanente por inercia en vez de por +decisión. + +## Checklist: cada vez que se hace bump de `@medusajs/*` + +1. Ubicar el `.trivyignore` de la app afectada y leer la justificación de cada + entrada — identifica de qué dependencia transitiva viene cada CVE (ej. + `esbuild` vía `vite` vía `@medusajs/admin-sdk`). +2. Después del bump, correr el build/escaneo y comparar: ¿la nueva versión de + la dependencia transitiva (`vite`/`esbuild` en el caso de admin-sdk) ya + trae el fix? + - Si el CVE ya no aparece en el reporte de Trivy → **remover la entrada** + del `.trivyignore`. + - Si el CVE sigue apareciendo pero con un identificador distinto → no + asumir que es "la misma" excepción; documentarla de nuevo con su propia + justificación. + - Si el CVE sigue igual (misma causa, mismo transitivo sin actualizar) → + dejar la entrada, pero actualizar la fecha/nota si vale la pena + (ej. "sigue aplicando tras bump a X.Y.Z, revisado 2026-MM-DD"). +3. Nunca copiar una excepción de una app a otra sin repetir este proceso — + cada `.trivyignore` es local a la imagen que describe. + +## Precedente + +`workloads/commerce-backend/.trivyignore` documenta `CVE-2024-24790` / +`CVE-2025-68121` (Go stdlib embebido en el binario de `esbuild`, traído por +`vite@5.4.21` ← `@medusajs/admin-sdk`, no se ejecuta en runtime del +contenedor) desde el commit `93f071c` (2026-08-15), con `@medusajs/*` en +`2.18.0`. Revisado el 2026-08-16: sin bumps de `@medusajs/*` desde entonces, +la excepción sigue vigente. Ese commit y el `.trivyignore` mismo documentan el +intento de fix real que se descartó (bump de esbuild rompía el build del +admin) — leerlo antes de repetir el intento en un bump futuro.