Repository navigation
fix(ci): install a pinned and checksum-verified trivy instead of the apt repository - #772
Conversation
…apt repository The dev tools script added Aqua's apt repository and installed whatever trivy version apt resolved at job time. That is the path of the March 2026 trivy compromise, and Renovate cannot see it. The script now downloads trivy v0.76.1 from GitHub releases and checks its SHA-256 (x86_64 and ARM64) before it goes on the PATH. Renovate tracks the version through the org's annotated version manager. OP-3653. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
OX Security reviewed this pull request — nothing to fix.
Branch |
Codecov Report✅ All modified and coverable lines are covered by tests. |
|
|
@olivermeyer thanks for merging. One follow-up about The tracker checker still marks python-sdk as "Renovate not correctly configured". It flags the last package rule: "matchPackageNames": ["*"],
"enabled": falseThe checker accepts an The description and commit bcc094b say this is deliberate: the SDK is deprecated and gets only security fixes and the weekly lock file maintenance. If that is correct, nothing in the repo has to change. We will add python-sdk as an accepted exception in the tracker, with a link to this comment. One side effect to know about: with every package disabled, Renovate no longer updates the SHA pins of the GitHub Actions and pre-commit hooks, or the Trivy version in |



Why
.github/workflows/_install_dev_tools.bashadded Aqua's apt repository (aquasecurity.github.io/trivy-repo/deb) and ranapt-get install trivywith no version. Every job then ran whatever Trivy release apt resolved at that moment. This is the path of the March 2026 Trivy compromise, in the same file and lines. Renovate cannot see apt installs, so the org's 5-day release-age wait did not apply. The script runs in audit, lint, test, docs, package-publish, Claude Code and four scheduled workflows. This is the last open item of OP-3653 for this repo.This is a security fix, so it fits the maintenance-mode rules.
What
trivyfrom theapt-get installline. The other packages still come from Ubuntu.v0.76.1(released 2026-10-21, the version thataignostics/actionsalso pins) from GitHub releases. Check the SHA-256 of the tarball against a value in the script before Trivy goes on thePATH. There is a checksum for x86_64 and one for ARM64, because the test matrix also runs this script onubuntu-24.04-arm. Any other architecture fails.# renovate:comment lets the org's annotated version manager propose updates. Renovate does not update the checksums, so its PR fails the check until someone copies the new values fromtrivy_<version>_checksums.txt. That stop is intended.The repo is public, so it cannot use the internal
aignostics/actions/install_trivyaction. That is why the check is in the script.Tested
bash -nandshellcheck: no findings.trivy.ubuntu-latestandubuntu-24.04-arm.The script also installs Sentry CLI with
wget … | sh. That is a separate problem and not part of this PR.🤖 Generated with Claude Code