🐛 Patch Changes
-
fec55cf: Bump Docker runtime to
gcr.io/distroless/nodejs22-debian13:nonrootto clear 9 CVEs (1 CRITICAL / 8 HIGH) that the published image inherited from the oldernodejs22-debian12base.Root cause: Google hasn't rebuilt any tag on
gcr.io/distroless/nodejs22-debian12since Node 22.22.2 and Debian 12'sopenssl 3.0.19-1~deb12u2shipped. Everydebian12variant still bakes Node 22.22.0 on top of the vulnerableopenssl 3.0.18-1~deb12u2, so a digest refresh alone couldn't clear the scan. Thenodejs22-debian13family already publishes Node v22.22.2 on a newer openssl, so moving the runtime stage to it fixes both CVE sources in a single base-image bump.The move is safe: the prod-deps stage runs
npm ci --ignore-scripts, so no native modules are compiled and the runtime's glibc version is invisible tonode_modules.node:22-alpineandnode:22-slimdigest pins were also refreshed for hygiene — those layers don't ship in the final image.CVEs cleared:
- CVE-2025-55130 (CRITICAL, CVSS 9.1) — Node
- CVE-2025-55131, CVE-2025-59465, CVE-2025-59466, CVE-2026-21637, CVE-2026-21710 (HIGH) — Node
- CVE-2026-28388, CVE-2026-28389, CVE-2026-28390 (HIGH) — Debian openssl
Verification: Local Trivy scan (
--severity HIGH,CRITICAL --ignore-unfixed) reports 0 findings post-bump (was 9).docker compose up -dpasses the healthcheck in ~14s and/api/v1/healthreturns{"status":"healthy"}.