Skip to content

ci: ignore CVE-2026-56854 and document the Trivy ignore policy - #391

Merged
nozaq merged 2 commits into
mainfrom
claude/trivy-cve-ignores-xloz1s
Sep 1, 2026
Merged

ci: ignore CVE-2026-56854 and document the Trivy ignore policy#391
nozaq merged 2 commits into
mainfrom
claude/trivy-cve-ignores-xloz1s

Conversation

@nozaq

@nozaq nozaq commented Sep 1, 2026

Copy link
Copy Markdown
Member

CVE-2026-56854 (golang.org/x/crypto/ssh, CRITICAL) started failing the Trivy scan of the terraform and opentofu images — the four amd64 check-image jobs on #389 and, from the next scan on, trivy.yml on main. It is one new finding on three binaries, and no other image reports it (golang/gopls scans clean).

What the scan reports

Binary Pinned release golang.org/x/crypto Fixed in
usr/local/bin/tofu OpenTofu 1.12.6 v0.52.0 v0.55.0
usr/local/bin/tofu-ls OpenTofu Language Server 0.5.3 v0.53.0 v0.55.0
usr/local/bin/terraform-ls Terraform Language Server 0.39.0 v0.54.0 v0.55.0
usr/local/bin/terraform Terraform 1.16.0 v0.55.0 — already fixed

Every pinned version above is the newest upstream release, so there is nothing to bump: terraform is clean because 1.16.0 already carries the fixed dependency, and the other three have no fixed release to take. That is what makes this an ignore entry rather than a version bump.

The entry

One entry keyed by the CVE id, listing the three reported paths, expiring 2026-10-31. The statement records the versions that were checked and nothing more — the id is the reference for what the finding itself is.

  • OpenTofumain and the v1.13 branch (the one v1.13.0-beta1, cut 2026-08-27, comes from) already use v0.55.0, so the fix arrives with 1.13.0. The 1.12.0 cycle ran ~5 weeks from beta1 to GA, so October. The v1.12 maintenance branch still declares v0.52.0, so a 1.12.7 patch would not carry it.
  • Terraform Language Servermain moved to v0.55.0 on 2026-08-20, and releases land roughly monthly (0.38.7 Jun 8 → 0.38.8 Jul 2 → 0.39.0 Jul 23), so its next release fixes it.
  • OpenTofu Language Servermain still declares v0.53.0 and has no commit since 0.5.3 (2026-07-08); no fixed release is in sight. On its own it would take the three-month re-check date, but a single entry takes the earliest of the three dates, so the October expiry re-opens the review for it too.

AGENTS.md

Writes down the policy this entry follows, since none of it was recorded: take an upstream release that fixes the finding instead of ignoring it; ignore only what the newest upstream release still carries; record the versions checked in statement and never restate the advisory; scope the entry to the reported paths; set expired_at to when the fix is expected, or — when that cannot be estimated — a re-check date at most three months out, taking the earliest date when one entry spans several binaries; and leave expired entries to a reviewer, which is what trivyignore-cleanup.yml already does.

.trivyignore.yaml is also added to the repository map at the top.

Verification

  • YAML parses; ids stay unique; the entry matches the surrounding layout.
  • prune-trivyignore.sh run against the edited file: a report containing every current finding prunes nothing and leaves the file byte-for-byte unchanged; a report simulating upstream fixing tofu and terraform-ls drops exactly those two paths and keeps the entry, comments and blank lines intact.
  • changed-images.sh selects every image for this change, so the build checks on this pull request rescan terraform and opentofu and confirm the suppression.

Two older entries (CVE-2026-56864, CVE-2026-56865) still explain their advisories in prose, which the policy above now rules out, and several name the versions current when they were written (Terraform 1.15.8, OpenTofu 1.12.5). Neither is touched here; trivyignore-cleanup.yml drops those entries once the published images stop reporting them.

The x/crypto/ssh source-address advisory lands on three binaries the
images cannot fix yet: OpenTofu 1.12.6 carries golang.org/x/crypto
v0.52.0, OpenTofu Language Server 0.5.3 v0.53.0 and Terraform Language
Server 0.39.0 v0.54.0, while the fix is in v0.55.0. Terraform 1.16.0
already ships it, so the terraform binary needs no entry.

OpenTofu and the Terraform Language Server carry the fixed version on
the branches their next releases come from, so the entry expires at the
end of October, by when both are expected to have released. The OpenTofu
Language Server has no fix upstream at all; the same date re-opens the
review for it rather than a later one.

Also write down the policy the entry follows in AGENTS.md: take an
upstream release that fixes the finding instead of ignoring it, record
the versions that were checked, scope the entry to the reported
binaries, and expire it when the fix is expected — or, when that cannot
be estimated, at a re-check date no more than three months out.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The entry carries the vulnerability id, so describing the advisory in
the statement only duplicates it. Leave the versions that were checked,
which is what the entry cannot be read without, and say so in the
policy: the id is the reference for what the finding is.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@nozaq
nozaq marked this pull request as ready for review September 1, 2026 21:22
@nozaq
nozaq merged commit bfa5846 into main Sep 1, 2026
59 checks passed
@nozaq
nozaq deleted the claude/trivy-cve-ignores-xloz1s branch September 1, 2026 21:26
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.

2 participants