fix(security): patch HIGH/CRITICAL container image vulnerabilities #81
Loading…
Reference in a new issue
No description provided.
Delete branch "security/2026-10-image-patching"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Why
The vulan/Grype scan of the running
rollnote-frontcontainer found 6 HIGH/CRITICAL findings, all Alpine packages in the nginx image:brotli-libs1.2.0-r1 (critical)curl/libcurl8.22.0libexpat2.8.5libx111.8.13zlib1.3.2-r0What changed (Dockerfile only)
NGINX_IMAGEnginxinc/nginx-unprivileged:1.31.6-alpine→1.31.7-alpine, the latest tag. This fixes libexpat and libx11.apk upgrade --no-cacheas root and then switches back toUSER 101, the image's own unprivileged user. Runtime behaviour is unchanged: the container still runs as uid 101 on 8080 with a read-only rootfs.NODE_IMAGEnode:24.21-alpine→node:24.22-alpine, in sync with the API. This doesn't affect the final image.No npm dependency changes;
package.jsonversion unchanged (1.2.0, still matches the API changelog check).Scan: before → after
podman build)--only-fixed, HIGH/CRITICAL--only-fixed, any severityVerification (local)
pnpm lint,pnpm format:check,pnpm typecheck: pass.pnpm test: 135 files, 1038 passed, 2 skipped.ng build(inside the image build): OK.podman build: OK.--cap-drop ALLandno-new-privileges: nginx starts as uid 101, and/returns 200.public.ecr.aws/nginx/nginx-unprivileged.What to check after deploy
apk upgradelayer from an earlier build. If a later scan still flags Alpine packages, rebuild without cache.Follow-ups
apk upgradestep can stay as a safety net or be dropped.https://claude.ai/code/session_011Qbv9zPFHL8Ax1zQWXSov3