Skip to content

Commit 81fb8cd

Browse files
ci(trivy): ignore unfixed vulns and scan only library packages
- Add --ignore-unfixed and --pkg-types library to Trivy in builder and validate workflow - Do not report base-image OS packages; keep .trivyignore for any remaining base-origin library findings - Simplify .trivyignore expiration format (date only) - Update README base image, pipeline, and Security sections Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent e2d66c5 commit 81fb8cd

File tree

4 files changed

+27
-23
lines changed

4 files changed

+27
-23
lines changed

.github/workflows/validate.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,8 @@ jobs:
9090
IMAGE_NAME: ${{ steps.manifest.outputs.image_name }}
9191
run: |
9292
trivy image \
93+
--ignore-unfixed \
94+
--pkg-types library \
9395
--ignorefile .trivyignore \
9496
--severity HIGH,CRITICAL \
9597
--exit-code 1 \

.trivyignore

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -5,29 +5,29 @@
55
# upgrading the base image (e.g. via Renovate).
66
#
77
# Ubuntu (linux-libc-dev / kernel)
8-
CVE-2024-35870 exp:2026-08-19T00:00:00+0000
9-
CVE-2024-53179 exp:2026-08-19T00:00:00+0000
10-
CVE-2025-37849 exp:2026-08-19T00:00:00+0000
11-
CVE-2025-37899 exp:2026-08-19T00:00:00+0000
12-
CVE-2025-38118 exp:2026-08-19T00:00:00+0000
8+
CVE-2024-35870 exp:2026-08-19
9+
CVE-2024-53179 exp:2026-08-19
10+
CVE-2025-37849 exp:2026-08-19
11+
CVE-2025-37899 exp:2026-08-19
12+
CVE-2025-38118 exp:2026-08-19
1313
#
1414
# Node (runner externals/node20)
15-
CVE-2024-21538 exp:2026-08-19T00:00:00+0000
16-
CVE-2025-64756 exp:2026-08-19T00:00:00+0000
17-
CVE-2026-26996 exp:2026-08-19T00:00:00+0000
18-
CVE-2026-23745 exp:2026-08-19T00:00:00+0000
19-
CVE-2026-23950 exp:2026-08-19T00:00:00+0000
20-
CVE-2026-24842 exp:2026-08-19T00:00:00+0000
21-
CVE-2026-26960 exp:2026-08-19T00:00:00+0000
15+
CVE-2024-21538 exp:2026-08-19
16+
CVE-2025-64756 exp:2026-08-19
17+
CVE-2026-26996 exp:2026-08-19
18+
CVE-2026-23745 exp:2026-08-19
19+
CVE-2026-23950 exp:2026-08-19
20+
CVE-2026-24842 exp:2026-08-19
21+
CVE-2026-26960 exp:2026-08-19
2222
#
2323
# .NET (Runner.Plugins / Runner.Sdk deps)
24-
CVE-2024-38095 exp:2026-08-19T00:00:00+0000
24+
CVE-2024-38095 exp:2026-08-19
2525
#
2626
# Go binaries (containerd, containerd-shim-runc-v2, docker-buildx – stdlib)
27-
CVE-2025-68121 exp:2026-08-19T00:00:00+0000
28-
CVE-2025-47907 exp:2026-08-19T00:00:00+0000
29-
CVE-2025-58183 exp:2026-08-19T00:00:00+0000
30-
CVE-2025-61726 exp:2026-08-19T00:00:00+0000
31-
CVE-2025-61728 exp:2026-08-19T00:00:00+0000
32-
CVE-2025-61729 exp:2026-08-19T00:00:00+0000
33-
CVE-2025-61730 exp:2026-08-19T00:00:00+0000
27+
CVE-2025-68121 exp:2026-08-19
28+
CVE-2025-47907 exp:2026-08-19
29+
CVE-2025-58183 exp:2026-08-19
30+
CVE-2025-61726 exp:2026-08-19
31+
CVE-2025-61728 exp:2026-08-19
32+
CVE-2025-61729 exp:2026-08-19
33+
CVE-2025-61730 exp:2026-08-19

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Container image based on the [GitHub Actions Runner](https://github.com/actions/
66

77
### Base image
88

9-
`ghcr.io/actions/actions-runner` (GitHub Actions Runner). Vulnerability scan results include components inherited from this base (Ubuntu, Node runner externals, .NET runner deps, containerd, docker-buildx). These cannot be fixed in this repo; we track them in [`.trivyignore`](.trivyignore) with expiration dates and rely on upstream runner image upgrades. Base image version is controlled by `RUNNER_VERSION` in [manifest.yaml](manifest.yaml) and is kept up to date by [Renovate](renovate.json). When upgrading the runner version, review Trivy output and remove or extend entries in `.trivyignore` as fixes become available.
9+
`ghcr.io/actions/actions-runner` (GitHub Actions Runner). Trivy is run with `--pkg-types library` and `--ignore-unfixed`, so OS packages from the base image (Ubuntu, containerd, docker-buildx, etc.) are not reported. Any remaining base-origin library findings can be listed in [`.trivyignore`](.trivyignore) with expiration dates. Base image version is controlled by `RUNNER_VERSION` in [manifest.yaml](manifest.yaml) and is kept up to date by [Renovate](renovate.json).
1010

1111
### Python
1212

@@ -65,7 +65,7 @@ When a new version is determined, the release workflow:
6565
3. Validates the Containerfile with hadolint
6666
4. Builds the image with `buildah` (OCI format, squashed layers)
6767
5. Runs `dive` filesystem efficiency scan
68-
6. Runs `trivy` vulnerability scan (HIGH/CRITICAL)
68+
6. Runs `trivy` vulnerability scan (library packages only, HIGH/CRITICAL, unfixed ignored)
6969
7. Pushes to GHCR with semver tags: `1.2.3`, `1.2`, `1`, `latest`
7070

7171
### Image tags
@@ -201,7 +201,7 @@ git commit -m "WIP"
201201

202202
## Security
203203

204-
This image is based on [actions/actions-runner](https://github.com/actions/runner). Trivy scans report vulnerabilities in the base image (OS packages, Node runner externals, .NET runner deps, containerd, docker-buildx) that cannot be patched in this repository. Known base-image findings are listed in [`.trivyignore`](.trivyignore) with expiration dates so they are re-evaluated when the base is upgraded. Keep `RUNNER_VERSION` in [manifest.yaml](manifest.yaml) up to date (Renovate opens PRs) and review or remove `.trivyignore` entries when upgrading.
204+
This image is based on [actions/actions-runner](https://github.com/actions/runner). Trivy is configured to scan only library packages and to ignore unfixed vulnerabilities, so base-image OS packages are not reported. Any remaining base-origin findings can be listed in [`.trivyignore`](.trivyignore) with expiration dates. Keep `RUNNER_VERSION` in [manifest.yaml](manifest.yaml) up to date (Renovate opens PRs) and review or remove `.trivyignore` entries when upgrading.
205205

206206
## License
207207

scripts/builder.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,8 @@ trivy_scan () {
288288
set +e
289289
trivy_scan_exec=$(\
290290
trivy image \
291+
--ignore-unfixed \
292+
--pkg-types library \
291293
--ignorefile .trivyignore \
292294
--input ${BUILD_DIR}/${IMAGE_NAME}-${IMAGE_TAG}.tar \
293295
--format github \

0 commit comments

Comments
 (0)