fix(commerce-backend): remediar 3/5 CVE CRITICAL, documentar excepcion para 2

Run 138 de build-medusa.yaml encontro 5 CVE CRITICAL reales (no falsos
positivos) al escanear la imagen con Trivy:

Remediados en el Dockerfile (verificado localmente con Trivy real,
exit 0):
- CVE-2026-33845 / CVE-2026-42010 (libgnutls30, base Debian): apt
  upgrade puntual del paquete.
- CVE-2026-59873 (tar vendorizado dentro del npm CLI global de la
  imagen base node:*-slim): se elimina /usr/local/lib/node_modules/npm
  completo -- no es una dependencia real del proyecto (el CMD nunca
  invoca npm en runtime), asi que no hay nada que "actualizar".

Documentados como excepcion en workloads/commerce-backend/.trivyignore
(con --ignorefile solo en este workflow, no afecta a build.yaml ni
deploy-docs.yaml):
- CVE-2024-24790 / CVE-2025-68121 (Go stdlib embebido en el binario de
  esbuild que trae [email protected], dependencia interna de
  @medusajs/admin-sdk). Se probo el fix real (override de esbuild a
  una version mas nueva) y rompio el build del admin panel --
  [email protected] fija "esbuild: ^0.21.3" como dependencia directa, y
  esbuild >=0.24 cambio el manejo de targets de transpilacion que vite
  5 espera. No existe un patch dentro de la serie 0.21.x con un Go
  toolchain mas nuevo. Requiere subir @medusajs/admin-sdk/vite en un
  cambio aparte, fuera de alcance de este pipeline de seguridad.
This commit is contained in:
2026-08-15 13:49:51 -05:00
parent 80d99f9f3f
commit 0c1076eda0
3 changed files with 59 additions and 0 deletions
+5
View File
@@ -220,6 +220,10 @@ jobs:
# a los 4m52s con el timeout default, en un run donde el host
# venía de terminar el docker build (ver hallazgo de rendimiento
# de Gitea/runner en docs/playbooks).
# --ignorefile: excepciones puntuales y documentadas (ver
# workloads/commerce-backend/.trivyignore) para CVEs sin fix de
# bajo riesgo disponible hoy. No debilita el gate en general --
# cualquier otra CRITICAL sigue bloqueando igual.
- name: Escanear imagen (Trivy) — CRITICAL bloquea
shell: bash
run: |
@@ -229,6 +233,7 @@ jobs:
--exit-code 1 \
--ignore-unfixed \
--timeout 15m0s \
--ignorefile "${APP_DIR}/.trivyignore" \
"${IMAGE_NAME}:${{ steps.vars.outputs.VERSION }}"
# HIGH solo informa por ahora — mismo criterio que el frontend.