You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Adds a Secscan workflow that scans the five Linux runner tarballs (x64, arm64, ppc64le, s390x, arm) with Canonical secscan (Trivy). release.yml also runs it on the freshly built packages, alongside the release: a failing scan marks the run red but does not block the release. It also runs weekly against the latest release, on demand, and on PRs touching its own files (same-repo PRs only). Per-runtime exclusion files live in .github/secscan-exclusions/; SECURITY.md documents the triage flow.
Why
SSDLC SEC0025 vulnerability scanning for the GitHub Runner product (ISD-6336).
Testing
Exit-code classifier and exclusion-selection logic checked with a shell harness (incl. a deliberately broken copy).
actionlint (only unknown custom runner-label notices) and zizmor on secscan.yaml are clean.
The Secscan checks on this PR scan the latest release.
Note: release branches (releases/**) cut before this merges lack secscan.yaml and need it cherry-picked to scan their next release.
Adds Canonical Secscan vulnerability scanning for Linux runner release tarballs, with release integration, reporting, exclusions, and triage documentation.
Changes:
Adds scheduled, manual, release, and same-repository PR scanning.
Integrates scanning without blocking release publication.
Adds security guidance and per-runtime exclusion files.
File
Summary
SECURITY.md
Documents scanning and triage; HTML report availability wording needs clarification (nit).
.github/workflows/secscan.yaml
Defines scanning and reporting; includes a critical private-runner trust issue, moderate non-idempotent installation issue, and inaccurate blocking comment (nit).
Serialize concurrent snap installation on self-hosted hosts
.github/workflows/secscan.yaml:47
The matrix can place several jobs on the same self-hosted host, so they can all observe the snap as absent and race into snap install. The later installers can fail with “already installed,” causing otherwise valid scans to fail before they start; serialize this host-wide installation or treat that specific race as success.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a
Secscanworkflow that scans the five Linux runner tarballs (x64, arm64, ppc64le, s390x, arm) with Canonical secscan (Trivy).release.ymlalso runs it on the freshly built packages, alongside the release: a failing scan marks the run red but does not block the release. It also runs weekly against the latest release, on demand, and on PRs touching its own files (same-repo PRs only). Per-runtime exclusion files live in.github/secscan-exclusions/;SECURITY.mddocuments the triage flow.Why
SSDLC SEC0025 vulnerability scanning for the GitHub Runner product (ISD-6336).
Testing
actionlint(only unknown custom runner-label notices) andzizmoronsecscan.yamlare clean.Note: release branches (
releases/**) cut before this merges lacksecscan.yamland need it cherry-picked to scan their next release.AI-generated message.