Skip to content

Move the Go module to Go 1.26.9 and golang.org/x/net 0.60.0 (new Go advisories) #4684

Description

@devantler

🤖 Generated by the Agentic Engineer

Problem

New Go advisories (GO-2026-6603 through GO-2026-6617) affect the Go 1.26.6 standard library and golang.org/x/net 0.58.0. This repository's Go module is on both (go 1.26.6, golang.org/x/net v0.58.0). The fixed releases are Go 1.26.9 and golang.org/x/net 0.60.0.

Nothing fails here today, because no check in this repository scans the Go module. The same advisories began failing the vulnerability scan in data-product-controller on 2026-10-09 (fixed in devantler-tech/data-product-controller#369, and in devantler-tech/provider-upjet-unifi#58). KSail is already on the fixed releases.

Acceptance criteria

  • go.mod and every place that installs Go for this module are on Go 1.26.9 or later.
  • golang.org/x/net is 0.60.0 or later.
  • A vulnerability scan of the module (for example trivy fs --scanners vuln .) reports none of the advisories above.

Notes

The Go code here is deploy and CI tooling, so exposure is limited to those tools' own network use. The change has to pass the merge queue's production deploy, which is not accepting changes at the moment (#4673), so it should be queued once deploys are healthy.

Activity

  1. self-assigned this
    on Oct 10, 2026
  2. devantler commented on Oct 10, 2026

    @devantler
    ContributorAuthor

    🤖 Generated by the Agentic Engineer

    Refinement, 2026-10-10: the change is tried and small, and it was deliberately not opened

    I claimed this, built and checked the change locally, and then stood down before pushing anything. The board has 26 issues in review against a limit of 12 and 9 in verification against a limit of 3, and this issue is still in Backlog, so starting it now would add to the pile rather than finish something. The claim is retired and the issue is unassigned again. Everything learned is below, so whoever pulls it next can open the pull request in a few minutes.

    The change (root module only)

    go get go@1.26.9 golang.org/x/net@v0.60.0 && go mod tidy changes two files:

    • go.mod: Go 1.26.6 → 1.26.9, golang.org/x/net 0.58.0 → 0.60.0, and with it golang.org/x/sys 0.47.0 → 0.48.0 and golang.org/x/text 0.41.0 → 0.42.0 (all three indirect).
    • go.sum: the matching lines. Tidy also drops checksum lines for versions nothing requires any more (siderolabs/gen 0.8.7, Talos machinery 1.14.0 and 1.14.1). The Talos machinery requirement itself stays at 1.14.2.

    Every workflow that builds this module installs Go from go.mod, so the first acceptance criterion needs no workflow edit.

    What I measured, at a9c39fa7

    Root module Before After
    Known advisories (trivy fs --scanners vuln --detection-priority comprehensive) 18: 13 in the Go standard library, 5 in golang.org/x/net (4 high, 7 medium, 1 low, 6 unrated) 0

    With Go 1.26.9 on the changed tree:

    • go build ./... and go vet ./... pass.
    • go test ./...: 39 packages pass and 1 fails. The failure is scripts/guard-bash-local-initialization, which compares against Bash's English error text; the machine I ran it on uses another language, and the package passes with LC_ALL=C. It is unrelated to this change.
    • The 15 tests under scripts/tests/ that build the Go tools: 13 pass. The other two fail the same way on unchanged main with Go 1.26.6, for local reasons: test-coroot-dns-resolution.sh needs Docker, and test-talos-render-kernel-args.sh ran against talosctl 1.14.2 instead of the pinned 1.13.10.

    CI will exercise what I could not: go.mod and go.sum are in the Talos path filter, so the pull request runs the Talos render and compatibility checks with the new Go release.

    Scope decision: scripts/render-helm-chart stays on Go 1.26.3

    A repository-wide scan also lists 38 advisories in that second module, before and after. It is pinned on purpose: it rebuilds the Helm command the way the audited Flux Helm controller was built (Go 1.26.3, Helm 4.2.0) and its guard verifies that build metadata, so it moves only when the audited controller does. Its README describes it as an offline rendering profile.

    So the third acceptance criterion should be read as "the root module reports none of these". A repository-wide trivy fs --scanners vuln . will keep listing the pinned module, and any scan added later needs a recorded exemption for it rather than a version bump.

    Why nothing caught this here

    No check in this repository scans the root module. As far as I can tell from the dependency automation's configuration, it also does not update the module's Go release or its indirect modules; I read the configuration only and did not confirm that against its run history. Closing that gap is a separate piece of work and is not filed yet; it is in my run report for the maintainer to place.

    Next step

    When review and verification are back under their limits and this is pulled from Ready: run the command above on current main, open the draft with Fixes #4684, and let CI run. The merge queue's production deploy is what delivers it, so queue it only once deploys are healthy.

  3. removed their assignment
    on Oct 10, 2026
  4. devantler commented on Oct 15, 2026

    @devantler
    ContributorAuthor

    🤖 Generated by the Agentic Engineer

    Fresh bounded refinement, 15 October: source-level govulncheck with the currently declared Go 1.26.6 reports symbol-level paths for 11 distinct advisories and seven non-test command entrypoints in the root module. This adds call-graph evidence to the earlier version-only scan; conservative static reachability is not proof of exploitability, exposure to an attacker, or an incident deadline.

    The dependency locks and the sampled operational caller bytes are unchanged between the previously validated source and accepted current main 9b7a3c001c9968a0e9b47e167589f2903e129bf5. The existing small root-module upgrade remains relevant. Do not update the independently pinned offline Helm/controller profile as a substitute; it has its own compatibility contract.

    No dependency, pipeline, credential or production change was made for this refinement, and no additional implementation WIP was opened. Prioritize the root-module repair when it can be pulled under the existing capacity rules, preserving the complete scan and hosted deployment acceptance requirements above.

  5. devantler commented on Oct 15, 2026

    @devantler
    ContributorAuthor

    🤖 Generated by the Agentic Engineer

    Refinement, 15 October: moved to Ready

    The 13:59Z refinement above confirmed the evidence; this records why it is ready to pull and where it ranks.

    • Outcome: the deploy and CI tooling in this repository stops shipping a Go standard library and golang.org/x/net with 11 known advisories whose code paths it reaches.
    • Audience: every production deploy and CI run that uses this tooling.
    • Cost of waiting: low per day, but it grows: no check in this repository scans the Go module, so nothing would tell us if a later advisory made it worse. The two sibling repositories that had the same advisories fixed them on 9 October.
    • Risk reduction: yes. This is not an incident and has no deadline, so the service class is Risk reduction, not Expedite.
    • Effort: Low. The change is two lines plus go mod tidy (tried locally on 10 October), then the normal merge-queue deploy.
    • Prerequisites: none open. The merge queue is accepting changes again (recent platform pull requests have merged), and no blocking dependency is recorded.

    Set: Priority High, Effort Low, Service class Risk reduction, Ready since 2026-10-15, linked under the security epic #2447.

  6. updated Effort Low and Priority High on Oct 15, 2026
  7. moved this from 📥 Backlog to 🫴 Ready in 🌊 Project Boardon Oct 15, 2026
  8. self-assigned this
    on Oct 16, 2026
  9. added a commit that references this issue on Oct 16, 2026
  10. moved this from 🫴 Ready to 🏃🏻‍♂️ In Progress in 🌊 Project Boardon Oct 16, 2026
  11. added a commit that references this issue on Oct 16, 2026
  12. moved this from 🏃🏻‍♂️ In Progress to 👀 In Review in 🌊 Project Boardon Oct 16, 2026
  13. moved this from 👀 In Review to 🚀 Ready to Merge in 🌊 Project Boardon Oct 16, 2026
  14. moved this from 🚀 Ready to Merge to ✅ Done in 🌊 Project Boardon Oct 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Fields

Priority

High

Effort

Low

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions