mrkeyoor.com_
Fri 25 Sept 21:48 UTC
Dev Toolsevaluationupdated 27 Aug 2026

trivy review

Trivy is a command-line security scanner for container images, filesystems, Git repositories, virtual machine images, and Kubernetes. It finds known vulnerabilities, exposed secrets, infrastructure configuration mistakes, licenses, and software components for an SBOM, giving teams one tool for several build and deployment checks.

+80stars / 7d
Verdict

Our Trivy build took 210 seconds and 213 of 216 test packages passed, but 3 failures keep commit dc3c56e from earning an unqualified source-build recommendation. The released tool remains a strong default for teams that want one CI scanner across images, repositories, secrets, SBOMs, and Kubernetes. Pin a stable release, define a finding policy, and investigate the failing packages before embedding this commit as a library.

We ran it

Lab card: what happened when we ran trivyScreenshot of trivy (trivy.dev)
Install✓ · 135s1003 packages
Build✓ · 210s
Tests✗ · 442s213 passed · 3 failed of 216 (go test)
Repo3310 files~277,035 lines of source · 94.4 MB · 22 CI workflows · Dockerfile

Answers from our run

Does trivy build from source?

Dependencies installed in 135 seconds (1003 packages), and the build succeeded in 210 seconds. We cloned commit dc3c56e into a clean Debian container with 3 CPUs and no project-specific setup.

Do trivy's tests pass?

Not all of them: 213 of 216 passed and 3 failed when we ran the project's own test command (go test). Some failures need services or credentials a bare container does not have.

Who should not use trivy?

Teams requiring a clean suite at commit dc3c56e: our sandbox reported 3 failed Go packages out of 216.

What are the alternatives to trivy?

Grype, OSV-Scanner, Snyk CLI. Our Trivy build took 210 seconds and 213 of 216 test packages passed, but 3 failures keep commit dc3c56e from earning an unqualified source-build recommendation.

Setup4/5Released binaries are simple; source build took 210 seconds
Docs5/5Separate coverage, installation, integration, and policy guides
Community5/537,640 stars and current work across 259 issues and PRs
Maturity4/5Wide stable use, though 3 of 216 sandbox packages failed

Discussed on

  1. hnTrivy ecosystem supply chain temporarily compromised102 points
  2. hnTrivy: A scanner for vulnerabilities in containers, file systems, and Git repos41 points
  3. hnTrivy Security incident 2026-03-1917 points
  4. hnAquasecurity/Trivy GitHub Repository and Homebrew Cask Compromised (again)16 points

Who it’s for

Development teams that want one scanner across local work, CI, containers, and Kubernetes.
Platform engineers who need vulnerability, secret, license, and configuration checks in the same policy step.
Organizations generating SBOMs from images or source trees.
Teams that can pin scanner and database updates, review findings, and maintain exceptions.

Who it’s NOT for

Teams requiring a clean suite at commit dc3c56e: our sandbox reported 3 failed Go packages out of 216.
Buyers seeking runtime threat detection or endpoint response: the README describes scans of artifacts, repositories, images, and Kubernetes configuration, not live behavior monitoring.
Anyone who assumes one scan covers every language and platform: the README promises popular choices and directs users to a separate coverage matrix.
Production users tempted by canary images: the README warns that every-push canaries may contain critical bugs and are not recommended for production.
Organizations wanting a managed security program instead of a scanner: the README positions Aqua's commercial product as the broader management offering.

Setup reality

Our sandbox installed 1,003 Go packages in 135 seconds. The build succeeded in 210 seconds. Tests failed with exit code 1 after 442 seconds: 213 passed and 3 failed out of 216. The log tail shows utility packages passing or having no test files before the final FAIL, without exposing the three causes.

The released binary, package-manager install, or container is easier than building this 3,310-file repository. Real vulnerability scans also need Trivy's advisory database and access to the target image, filesystem, repository, VM image, or Kubernetes cluster. Registry and cluster credentials depend on the chosen target.

CI users must decide which scanners run, how updates are cached, what severity or policy fails a build, and how exceptions expire. Canary builds are produced for each main-branch push, but the README says they can have critical bugs and should stay out of production.

One CLI scans five kinds of target

Trivy scans container images, filesystems, remote Git repositories, virtual machine images, and Kubernetes. Its scanners look for known vulnerabilities, exposed secrets, infrastructure configuration problems, licenses, and the components needed for a software bill of materials. A developer can check a project directory, then use the same command family in CI and against a deployment target.

The breadth comes with real size. Our commit dc3c56e checkout contained 3,310 files, about 277,035 lines of source, and 22 CI workflow files. It had a Dockerfile and no top-level tests directory, while Go tests were distributed across packages. Trivy supports many operating systems, languages, and platforms, but the README promises popular choices rather than universal coverage and sends readers to a detailed matrix.

Vulnerability results need policy and review

A scan can identify installed packages and match them with published CVEs. That is evidence about known issues, not proof that a particular application is exploitable. Teams still need to set severity thresholds, decide whether unfixed findings block a release, account for vendor status, and record temporary exceptions. Trivy produces the report; it cannot make the risk decision for the service owner.

Secret, configuration, and license results need the same care. Open work in August 2026 includes fixes for empty parser inputs, SPDX NOASSERTION handling, and CSAF relationship processing. Those examples show why scanner upgrades deserve regression checks against an organization's own artifacts. A green scan also cannot establish that an unsupported format contains no flaw.

What happened when we ran it

Our sandbox installed 1,003 Go packages in 135 seconds. The build succeeded in 210 seconds. We used commit dc3c56e in an unprivileged golang:1.24-bookworm container with 3 CPUs, 8 GB of RAM, and no secrets. The checkout itself was 94.4 MB before those dependencies were installed.

The test command ran for 442 seconds and exited with code 1. Go reported 213 packages passing and 3 failing out of 216. The provided log tail lists passing utility packages for HTTP, I/O, JSON, operating systems, and paths, plus several packages with no test files, then ends at the overall FAIL. It does not name the three failures or show their assertions.

We cannot say whether those failures require network access, fixture data, different system packages, or a code fix. The exact finding is that commit dc3c56e built but did not pass its full suite in our fresh environment. Before shipping a custom binary or embedding the source as a Go library, capture the complete output and reproduce the three failed packages.

Stable binaries avoid the 210-second source build

Most users do not need to build the repository. The README lists Homebrew, an aquasec/trivy container, and downloadable release binaries. GitHub Actions, a Kubernetes operator, and a VS Code extension cover common integrations. Stable release v0.74.0 was published on August 14, 2026, one week before GitHub recorded the repository's latest push.

Canary binaries and images are generated for every main-branch push. The project warns that these may contain critical bugs and should not be used in production. That matters for a security gate, where a scanner crash, parser regression, or changed result format can halt delivery or let a bad artifact through. Pin a stable version and schedule upgrades instead of following canary.

Current advisory data is part of every scan

A vulnerability scan needs current advisory data as well as the executable. Container work also needs image-layer access and private-registry credentials where applicable. Kubernetes scanning needs cluster authorization. CI operators should cache updates deliberately so parallel jobs do not all repeat the same download or fail on an avoidable network dependency.

The pipeline also needs explicit failure rules. trivy fs --scanners vuln,secret,misconfig examines a project directory, while image and Kubernetes targets have their own modes. Select checks the team can act on, preserve a report, and test the chosen exit-code policy. A command that prints findings but always exits successfully gives information without enforcing a release decision.

SBOM inventory is evidence, not a security verdict

Trivy can list operating-system packages and application dependencies for an SBOM, then scan those components for known vulnerabilities. This works well when another system handles storage, signing, attestations, or policy. Current CycloneDX cryptographic-asset work is carefully limited to discovery rather than judging whether a key is used or secure.

An inventory tells you what the scanner recognized and where it appeared. It may miss an unsupported package format or classify incomplete metadata conservatively. Keep the generated SBOM as evidence, compare it across releases, and review exceptions. Do not turn a green report into a claim that the artifact has no security flaws.

August activity supports a pinned adoption

GitHub showed 37,640 stars, 259 combined issues and pull requests, and a last push on August 21, 2026. Release v0.74.0 arrived on August 14. The open count includes contributions and feature work, so it is not a bug count. The 22 workflow files and current parser fixes show active engineering on a large scanning surface.

Trivy is a practical first scanner because it covers several jobs without forcing five separate CLIs into the build. Our 3 failed packages keep this measured commit below a clean bill of health. Use the stable distribution, pin its data and output assumptions where possible, and investigate source-level failures before customization. Grype or OSV-Scanner is easier to reason about when vulnerability matching is the only requirement.

Alternatives

ProjectWhat it isPick it when
Grype gh↗A vulnerability scanner for container images, filesystems, and SBOMs.pick this instead when vulnerability matching is the main job and you prefer a narrower scanner.
OSV-Scanner gh↗A dependency vulnerability scanner built around the OSV database and lockfiles.pick this instead when open-source dependency vulnerabilities matter more than secrets, IaC, licenses, or Kubernetes.
Snyk CLIA CLI that connects code, dependency, container, and infrastructure scans to Snyk services.pick this instead when a hosted workflow and commercial remediation context are acceptable.

What people are saying

  1. [github-trending] aquasecurity/trivy

Sources

  1. Trivy README
  2. Trivy repository facts
  3. Trivy v0.74.0 release
  4. Trivy scanning coverage
  5. Cryptographic asset inventory issue

More dev tools reviews

Claude-Code-Usage-Monitor · pyxel · dust · kubernetes-the-hard-way · wifit3 · badnotes · the whole board →