Skip to content

Commit ec08440

Browse files
authored
ci: bump docker/build-push-action to v7 and clear .trivyignore (#59)
* ci: bump docker/build-push-action to v7 and clear .trivyignore - docker/build-push-action@v6 -> @v7 across integration-tests.yml and security.yml. v7 runs on Node.js 24 by default, clearing the GitHub Actions deprecation warning for Node.js 20. - Drop all six CVE suppressions from .trivyignore after verifying locally against a fresh build of lambda/helm-installer that none of them are reported by Trivy (DB refreshed 2026-05-13) at any severity: CVE-2026-4046 (glibc iconv), CVE-2026-33811/33814/39820/39836/42499 (Go stdlib). The Lambda Python 3.14 base image now ships patched glibc and Go 1.26.3 aws-lambda-rie. * ci: restore .trivyignore suppressions CI's pinned Trivy 0.70.0 (mirror.gcr.io/aquasec/trivy-db:2) still flags all six CVEs as HIGH against the helm-installer image: - CVE-2026-4046: base image still ships glibc 2.34-231.amzn2023.0.3 (fix .0.4 hasn't flowed into public.ecr.aws/lambda/python:3.14 yet). - CVE-2026-33811/33814/39820/39836/42499: aws-lambda-rie (Go 1.26.2), helm v4.1.4 (Go 1.25.9), kubectl v1.35.4 (Go 1.25.9) all still pre-date the Go 1.25.10 / 1.26.3 fixes shipped on 2026-05-07. Local scan with Trivy 0.69.3 + ghcr.io DB reported zero findings for these CVEs, which led to the earlier drop; the DB mismatch with CI was the source of the false negative. Restoring the suppressions with refreshed justifications and a new note in the header rules to always verify against the pinned CI Trivy version before editing.
1 parent c56fcf4 commit ec08440

3 files changed

Lines changed: 44 additions & 38 deletions

File tree

.github/workflows/integration-tests.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,7 @@ jobs:
276276
# reused by this job, integration:kind:cluster-e2e, and
277277
# security:trivy:container-scan — all three build the same image
278278
# from the same Dockerfile + context.
279-
uses: docker/build-push-action@v6
279+
uses: docker/build-push-action@v7
280280
with:
281281
context: .
282282
file: dockerfiles/health-monitor-dockerfile
@@ -301,7 +301,7 @@ jobs:
301301
- uses: actions/checkout@v6
302302
- uses: docker/setup-buildx-action@v4
303303
- name: Build image
304-
uses: docker/build-push-action@v6
304+
uses: docker/build-push-action@v7
305305
with:
306306
context: .
307307
file: dockerfiles/manifest-processor-dockerfile
@@ -326,7 +326,7 @@ jobs:
326326
- uses: actions/checkout@v6
327327
- uses: docker/setup-buildx-action@v4
328328
- name: Build image
329-
uses: docker/build-push-action@v6
329+
uses: docker/build-push-action@v7
330330
with:
331331
context: .
332332
file: dockerfiles/inference-monitor-dockerfile
@@ -352,7 +352,7 @@ jobs:
352352
- uses: actions/checkout@v6
353353
- uses: docker/setup-buildx-action@v4
354354
- name: Build image
355-
uses: docker/build-push-action@v6
355+
uses: docker/build-push-action@v7
356356
with:
357357
context: .
358358
file: dockerfiles/queue-processor-dockerfile
@@ -379,7 +379,7 @@ jobs:
379379
- uses: actions/checkout@v6
380380
- uses: docker/setup-buildx-action@v4
381381
- name: Build image
382-
uses: docker/build-push-action@v6
382+
uses: docker/build-push-action@v7
383383
with:
384384
context: lambda/helm-installer
385385
file: lambda/helm-installer/Dockerfile
@@ -581,7 +581,7 @@ jobs:
581581
# Shares the same GHA cache scope as integration:docker:health-monitor
582582
# and security:trivy:container-scan. All three build the same image
583583
# from the same Dockerfile + context, so layer reuse is automatic.
584-
uses: docker/build-push-action@v6
584+
uses: docker/build-push-action@v7
585585
with:
586586
context: .
587587
file: dockerfiles/health-monitor-dockerfile
@@ -590,7 +590,7 @@ jobs:
590590
cache-from: type=gha,scope=health-monitor
591591
cache-to: type=gha,mode=max,scope=health-monitor
592592
- name: Build manifest-processor image
593-
uses: docker/build-push-action@v6
593+
uses: docker/build-push-action@v7
594594
with:
595595
context: .
596596
file: dockerfiles/manifest-processor-dockerfile
@@ -599,7 +599,7 @@ jobs:
599599
cache-from: type=gha,scope=manifest-processor
600600
cache-to: type=gha,mode=max,scope=manifest-processor
601601
- name: Build inference-monitor image
602-
uses: docker/build-push-action@v6
602+
uses: docker/build-push-action@v7
603603
with:
604604
context: .
605605
file: dockerfiles/inference-monitor-dockerfile

.github/workflows/security.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ jobs:
183183
# is used by the integration:docker:* jobs and the kind E2E build,
184184
# so each image's layers are built exactly once per commit and
185185
# reused everywhere.
186-
uses: docker/build-push-action@v6
186+
uses: docker/build-push-action@v7
187187
with:
188188
context: ${{ matrix.context || '.' }}
189189
file: ${{ matrix.dockerfile }}

.trivyignore

Lines changed: 35 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -9,45 +9,51 @@
99
# or extend the date with a new justification if the fix still isn't
1010
# available. Never extend without re-checking upstream.
1111
# 4. Keep the file short. A growing ignorefile is a smell.
12+
# 5. Verify against the pinned CI Trivy (TRIVY_VERSION in security.yml /
13+
# cve-scan.yml) and its DB source — local `brew install trivy` uses
14+
# the ghcr.io DB which can classify severities differently from the
15+
# CI's mirror.gcr.io/aquasec/trivy-db:2.
1216
#
1317
# Format:
1418
# CVE-XXXX-XXXXX exp:YYYY-MM-DD
1519
# =============================================================================
1620

1721
# CVE-2026-4046 — glibc iconv() DoS in AL2023 base image (lambda/helm-installer).
18-
# Trivy's vuln DB lists glibc-2.34-231.amzn2023.0.4 as the fix, but as of
19-
# 2026-05-01 the fixed RPM is NOT yet available in the AL2023 dnf repos —
20-
# `dnf upgrade glibc` inside the base image (public.ecr.aws/lambda/python:3.14)
21-
# reports "Nothing to do". The AL2023 advisory (ALAS2023-2026-1622, released
22-
# 2026-04-30) still lists the package status as "PendingFix", confirming the
23-
# RPM has not yet been published. We don't add `dnf upgrade` to the Dockerfile
24-
# because it would make builds non-reproducible. The only remaining option is
25-
# to wait for AWS to publish a rebuilt Lambda Python base image that includes
26-
# the patched glibc, then rebuild and drop this entry.
22+
# ALAS2023-2026-1622 (published 2026-04-30) lists fixed RPMs
23+
# (glibc-2.34-231.amzn2023.0.4) in AL2023 repo snapshot 2023.11.20260427, but
24+
# public.ecr.aws/lambda/python:3.14 still ships glibc-2.34-231.amzn2023.0.3
25+
# confirmed by CI scan on 2026-05-13. The image is pinned to a repo snapshot
26+
# older than 2026-04-27, so `dnf upgrade glibc` in the Dockerfile would be the
27+
# only way to pull the fix — and that would make builds non-reproducible.
28+
# Wait for AWS to publish a rebuilt Lambda Python base image.
2729
#
28-
# CVE record: https://www.cve.org/CVERecord?id=CVE-2026-4046
29-
# AL2023 ALAS: https://alas.aws.amazon.com/AL2023/ALAS2023-2026-1622.html
30-
# ALAS JSON feed: https://alas.aws.amazon.com/cve/json/v1/CVE-2026-4046.json
31-
# Upstream base image: public.ecr.aws/lambda/python:3.14
32-
CVE-2026-4046 exp:2026-05-22
30+
# CVE record: https://www.cve.org/CVERecord?id=CVE-2026-4046
31+
# AL2023 ALAS: https://alas.aws.amazon.com/AL2023/ALAS2023-2026-1622.html
32+
# Base image: public.ecr.aws/lambda/python:3.14
33+
CVE-2026-4046 exp:2026-06-13
3334

3435
# CVE-2026-33811, CVE-2026-33814, CVE-2026-39820, CVE-2026-39836,
35-
# CVE-2026-42499 — Go stdlib vulnerabilities (net/http, crypto/tls, os/exec)
36+
# CVE-2026-42499 — Go stdlib vulnerabilities (net, net/http, net/mail)
3637
# affecting three binaries in the helm-installer Lambda container:
3738
# - aws-lambda-rie (Go 1.26.2, bundled in public.ecr.aws/lambda/python:3.14)
38-
# - helm v4.1.4 (Go 1.25.9, latest release as of 2026-05-11)
39-
# - kubectl v1.35.4 (Go 1.25.9, latest stable-1.35 as of 2026-05-11)
39+
# - helm v4.1.4 (Go 1.25.9, latest release as of 2026-05-13)
40+
# - kubectl v1.35.4 pinned in Dockerfile (Go 1.25.9; v1.35.5 released
41+
# 2026-05-12 is still go1.25.9 per build-image/cross/VERSION)
4042
#
41-
# Fix requires Go ≥1.25.10 or ≥1.26.3 in the compiled binaries. No upstream
42-
# releases are available yet:
43-
# - Helm: v4.1.4 is latest (https://github.com/helm/helm/releases)
44-
# - kubectl: v1.35.4 is latest stable-1.35 (https://dl.k8s.io/release/stable-1.35.txt)
45-
# - aws-lambda-rie: AWS-controlled, no user-serviceable update path
43+
# Fix requires Go ≥1.25.10 or ≥1.26.3 in the compiled binaries. Go released
44+
# those versions on 2026-05-07, but no downstream rebuild has shipped yet:
45+
# - Helm: v4.1.4 is still latest (https://github.com/helm/helm/releases);
46+
# v4.2.0-rc.1 exists but we pin to stable.
47+
# - kubectl: v1.35.5 (2026-05-12) still ships Go 1.25.9
48+
# (https://raw.githubusercontent.com/kubernetes/kubernetes/v1.35.5/build/build-image/cross/VERSION)
49+
# - aws-lambda-rie: latest is v1.35 (2026-03-30) still Go 1.26.2;
50+
# AWS-controlled, no user-serviceable update path.
4651
#
47-
# These CVEs pre-date this PR and would fail the scan on main today.
48-
# Re-evaluate when Helm v4.1.5+ or kubectl v1.35.5+ ships.
49-
CVE-2026-33811 exp:2026-06-11
50-
CVE-2026-33814 exp:2026-06-11
51-
CVE-2026-39820 exp:2026-06-11
52-
CVE-2026-39836 exp:2026-06-11
53-
CVE-2026-42499 exp:2026-06-11
52+
# Re-evaluate when Helm ships v4.1.5+ with Go 1.25.10, when kubectl ships
53+
# v1.35.6+ rebuilt with Go 1.25.10, and when AWS rebuilds aws-lambda-rie.
54+
# Go release: https://groups.google.com/g/golang-announce/c/qcCIEXso47M
55+
CVE-2026-33811 exp:2026-06-13
56+
CVE-2026-33814 exp:2026-06-13
57+
CVE-2026-39820 exp:2026-06-13
58+
CVE-2026-39836 exp:2026-06-13
59+
CVE-2026-42499 exp:2026-06-13

0 commit comments

Comments
 (0)