Skip to content

Triage CVE-2026-46600: x/net DoS in the bundled terraform binary - #441

Merged
xerhab merged 1 commit into
mainfrom
trivy-cve-2026-46600
Aug 12, 2026
Merged

Triage CVE-2026-46600: x/net DoS in the bundled terraform binary#441
xerhab merged 1 commit into
mainfrom
trivy-cve-2026-46600

Conversation

@xerhab

@xerhab xerhab commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

What's failing

A newly-published HIGH is failing turma-agent-image-scan on every PR that rebuilds the agent image (mine, and anything else that touches agent/ or turma/):

usr/local/bin/terraform (gobinary)
Total: 1 (HIGH: 1, CRITICAL: 0)

golang.org/x/net  CVE-2026-46600  HIGH  fixed  v0.55.0 → 0.56.0
  golang.org/x/net/dns/dnsmessage: Denial of Service via invalid DNS record parsing

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 in golang.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.16.0-rc1              2026-08-12
1.17.0-alpha20260812    2026-08-12
1.16.0-beta2            2026-08-05
…
1.15.8                  2026-07-08   <- newest STABLE

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_VERSION has 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.md says the same ("Non-actionable upstream base-image findings go in the root .trivyignore").

The blast radius is a DoS of a single terraform invocation 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

.trivyignore is in turma-agent-image-scan.yml's path filter, so this PR runs the very scan it's fixing — a green scan here is the verification. One line of triage plus its rationale; no code, no runtime surface.

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
xerhab merged commit 8c6c323 into main Aug 12, 2026
2 of 3 checks passed
@xerhab
xerhab deleted the trivy-cve-2026-46600 branch August 12, 2026 20:03
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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant