Merge fix/trivyignore-review-process into main
Co-Authored-By: Claude Sonnet 5 <[email protected]> Claude-Session: https://claude.ai/code/session_011FqYP3Wf1W63Qmh7qgXAAT
This commit is contained in:
@@ -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
|
||||||
|
`[email protected]` ← `@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.
|
||||||
Reference in New Issue
Block a user