Triage CVE-2026-46600: x/net DoS in the bundled terraform binary - #441
Merged
Conversation
A newly-published HIGH is failing the agent image scan on every PR that rebuilds the image, mine included. It is not first-party: Trivy reports exactly one carrier, /usr/local/bin/terraform (1.15.8), which compiles in golang.org/x/net v0.55.0; the fix is x/net 0.56.0. There is nothing to bump to. Checked against HashiCorp's release index today: 1.15.8 (2026-07-08) is still the newest STABLE terraform, and everything after it is a 1.16.0 rc/alpha, which does not belong in a shipped image. That is the same position the existing terraform entries in this file are in. So it takes the documented route: a reviewed entry with the reason and an expiry (2026-10-25, matching the most recent batch), which forces the revisit rather than muting it. The blast radius is a DoS of one terraform invocation a session runs by hand — nothing in this image parses DNS responses from a resolver the operator did not already choose. Separate from XERK-265 deliberately: a suppression on a security gate should be reviewable on its own, not buried in a feature diff.
xerhab
added a commit
that referenced
this pull request
Aug 12, 2026
… can pass The agent image scan on this PR fails on a HIGH in the bundled terraform binary that has nothing to do with this change and blocks every PR in the repo. The triage for it is its own reviewable PR (#441) — merge that one first; these identical lines then merge as a no-op.
xerhab
added a commit
that referenced
this pull request
Aug 12, 2026
Only conflict is .trivyignore: PR #441 landed the same CVE-2026-46600 triage while this was in CI. Took main's entry wholesale and dropped this branch's — same finding, same conclusion, and the shared file should carry one copy in the voice that got there first. Nothing of this branch's reasoning is lost; main's wording is if anything more specific about the release index it checked.
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
What's failing
A newly-published HIGH is failing
turma-agent-image-scanon every PR that rebuilds the agent image (mine, and anything else that touchesagent/orturma/):It appeared between two runs of the same PR — the earlier scan passed, and Trivy's DB is refetched per run — so it is a new advisory against an unchanged pin, not a regression from any diff.
Why it isn't a version bump
Trivy reports exactly one carrier:
/usr/local/bin/terraform,TERRAFORM_VERSION=1.15.8, which compiles ingolang.org/x/net v0.55.0. x/net is linked into the binary, so it can't be patched independently.Checked against HashiCorp's release index today:
1.15.8 is the latest stable release; everything after it is a 1.16.0 rc/alpha, which doesn't belong in a shipped image.
TERRAFORM_VERSIONhas nothing to bump to — the same position as the three terraform entries already in this file (CVE-2026-27145/-42504,GHSA-hrxh-6v49-42gf,CVE-2026-56852).Why triage is the right route here
.trivyignore's own header sets the bar — "Only REVIEWED, non-actionable findings belong here, each with a reason" — and this meets it: third-party, not independently patchable, nothing to bump to..claude/rules/release.mdsays the same ("Non-actionable upstream base-image findings go in the root.trivyignore").The blast radius is a DoS of a single
terraforminvocation a session runs by hand. Nothing in this image parses DNS responses from a resolver the operator didn't already choose, and terraform is developer tooling here, not a network-facing runtime surface.The entry carries
exp:2026-10-25, matching the most recent batch, so it re-fails and forces a revisit rather than muting the finding permanently. The first stable terraform built against x/net 0.56+ clears it with a pin bump.Why this is its own PR
It's blocking every PR in the repo, not just the one I hit it on, and a suppression on a security gate should be reviewable on its own rather than buried in a feature diff. Found while getting XERK-265 (#434) green; that PR needs this to merge first.
Verification
.trivyignoreis inturma-agent-image-scan.yml's path filter, so this PR runs the very scan it's fixing — a greenscanhere is the verification. One line of triage plus its rationale; no code, no runtime surface.