Skip to content

Scan Go SDK dependencies for known vulnerabilities in CI - #70915

Merged
potiuk merged 1 commit into
apache:mainfrom
jason810496:ci/go-sdk/govulncheck-dependency-scan
Aug 3, 2026
Merged

Scan Go SDK dependencies for known vulnerabilities in CI#70915
potiuk merged 1 commit into
apache:mainfrom
jason810496:ci/go-sdk/govulncheck-dependency-scan

Conversation

@jason810496

@jason810496 jason810496 commented Aug 1, 2026

Copy link
Copy Markdown
Member

Why

Go modules resolve directly to upstream repositories. Unlike PyPI or npm — where releases are now scanned at publish time — there is no central registry that pre-scans a Go release, so a known-vulnerable or compromised dependency can enter the Go SDK's graph without any external scanner flagging it first.

We already limit Dependabot to advisory-driven security updates for Go modules (#70914) and CodeQL scans our own Go source daily, but neither continuously checks the dependency graph against known advisories.

What

Add a govulncheck step to the Go SDK tests job on both the amd and arm CI workflows (kept in sync). govulncheck:

  • checks the module graph against the Go vulnerability database, and
  • is reachability based, so it only fails the build on advisories that affect code the SDK actually calls — keeping the signal low-noise rather than alerting on every transitively-present CVE.

The @v1.6.0 pin is immutable: Go module versions are content-addressed through the checksum database, unlike mutable Git tags used for uses: actions.

This runs whenever the Go SDK job runs (i.e. when Go files change), catching a vulnerable dependency at the moment it is added or bumped.


Was generative AI tooling used to co-author this PR?
  • Yes — Claude Code (Opus 4.8)

Generated-by: Claude Code (Opus 4.8) following the guidelines

Go modules resolve directly to upstream repositories with no central registry
that pre-scans releases the way PyPI and npm now do, so a known-vulnerable or
compromised dependency can enter the graph without any external scanner
flagging it first. Add a govulncheck step to the Go SDK test job on both the
amd and arm CI workflows. govulncheck checks the module graph against the Go
vulnerability database and is reachability based, so it only fails the build on
advisories that affect code the SDK actually calls, keeping the signal
low-noise. This complements the daily CodeQL scan (which covers our own Go
source, not dependency advisories) and the advisory-driven Dependabot security
updates.

@potiuk potiuk left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice

@potiuk
potiuk merged commit 679cfca into apache:main Aug 3, 2026
156 checks passed
@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Backport failed to create: v3-3-test. View the failure log Run details

Note: As of Merging PRs targeted for Airflow 3.X
the committer who merges the PR is responsible for backporting the PRs that are bug fixes (generally speaking) to the maintenance branches.

In matter of doubt please ask in #release-management Slack channel.

Status Branch Result
v3-3-test Commit Link

You can attempt to backport this manually by running:

cherry_picker 679cfca v3-3-test

This should apply the commit to the v3-3-test branch and leave the commit in conflict state marking
the files that need manual conflict resolution.

After you have resolved the conflicts, you can continue the backport process by running:

cherry_picker --continue

If you don't have cherry-picker installed, see the installation guide.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants