mrkeyoor.com_
Tue 10 Nov 05:43 UTC
Dev Toolsevaluationupdated 22 Oct 2026

trivy review

Trivy is a security scanner for container images, source directories, Git repositories, virtual machine images, and Kubernetes. It checks software for known vulnerabilities and can also find secrets or configuration mistakes, giving delivery teams one CLI for several kinds of checks.

+183stars / 7d
Verdict

Our Trivy build succeeded in 283 seconds; the test step reported 418 passed and 6 failed. Its documented image and source checks make a stable binary worth evaluating for shared CI jobs, while the unexplained failures limit our confidence in adopting commit 3f664e5 as a source baseline. Check database delivery and the reports your pipeline actually consumes before making findings block releases.

We ran it

Lab card: what happened when we ran trivyScreenshot of trivy (trivy.dev)
Install✓ · 87s992 packages
Build✓ · 283s
Tests✗ · 457s418 passed · 6 failed of 424 (go test)
Repo3339 files~284,043 lines of source · 94.7 MB · 21 CI workflows · Dockerfile

Answers from our run

Does trivy build from source?

Dependencies installed in 87 seconds (992 packages), and the build succeeded in 283 seconds. We cloned commit 3f664e5 into a clean Debian container with 3 CPUs and no project-specific setup.

Do trivy's tests pass?

No. The project's own test command finished in 457 seconds and reported 418 passed, 6 failed (go test).

Who should not use trivy?

Teams needing a fully passing source baseline at commit 3f664e5: our measured test step exited 1 with 6 reported failures.

What are the alternatives to trivy?

Grype, OSV-Scanner. Our Trivy build succeeded in 283 seconds; the test step reported 418 passed and 6 failed.

SetupN/ASource installation was timed, but packaged scanner setup, database retrieval and a representative scan were not assessed.
DocsN/AThe README and network guide were checked for factual scope; their deployment procedures were not independently exercised.
CommunityN/APush dates and issue activity establish ongoing work, while response quality and support commitments remain unassessed.
MaturityN/AThe successful source build and unresolved test failures do not establish production accuracy or compatibility for reader artifacts.

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

Platform engineers consolidating image and source security checks in CI.
Teams willing to select scanners explicitly and own the resulting finding policy.
Operators who can keep scanner databases available and current inside their network.

Who it’s NOT for

Teams needing a fully passing source baseline at commit 3f664e5: our measured test step exited 1 with 6 reported failures.
Python teams relying on exact pylock.toml SBOM relationships without inspecting the output: issue 11411 reports missing edges for name-only dependencies.
Operators expecting restricted-network scanning to work without supplying data: the network documentation lists external databases and registry access requirements.
Production pipelines following the canary channel: the README warns that canaries may contain critical bugs.

Setup reality

Our sandbox installed commit 3f664e5 in 87 seconds, recording 992 dependencies, and built it in 283 seconds. Tests failed with exit 1 after 457 seconds: 418 passed and 6 failed out of 424. The visible tail shows successful package results followed by FAIL, without naming the failed checks.

The README offers binaries and container distribution as alternatives to a source checkout. Running useful scans also requires the relevant database inputs and access to the target. Private registries and Kubernetes use their existing authentication. Restricted networks need an explicit data delivery and update arrangement.

The recorded image was golang:1.24-bookworm on 3 CPUs and 8 GB of RAM; its label does not verify runtime versions. Java identification can involve remote repositories. Our source measurements do not assess the packaged scanner or explain the six failures.

Choose checks for both the image and its source

Trivy's README shows a filesystem command that explicitly enables vulnerability, secret, and misconfiguration scanning together. That is its strongest argument for a delivery team: the same CLI can examine an image and the directory that produced it. You still choose the target and the checks. An image report does not establish what a separate source-directory scan would find.

Aqua Security also documents targets for remote Git repositories, virtual machine images, and Kubernetes. The breadth suits platform engineers who want a common command vocabulary across delivery jobs. I would consider it when security checks are scattered across several scripts. If package advisories are your entire requirement, compare a narrower workflow before adopting more scanning categories than anyone has agreed to maintain.

What happened when we ran it

Our sandbox installed Trivy commit 3f664e5 in 87 seconds, recording 992 dependencies, and built it successfully in 283 seconds. The October 9, 2026 test step then failed with exit 1 after 457 seconds. The supplied Go summary reported 418 passed and 6 failed out of 424. Compilation succeeded, but the complete measured workflow was not green.

The visible tail lists successful package results, including pkg/version, pkg/vex, and several helpers under pkg/x, before ending in FAIL. It does not name the failed checks or show their exceptions. That leaves the cause unresolved. Blaming network access, a particular dependency, or Trivy's own logic would require earlier log lines that are absent from the supplied evidence.

Our recorded configuration had 3 CPUs and 8 GB of RAM, with image golang:1.24-bookworm. The label does not verify the Go or operating-system version actually used. The checkout contained 3,339 files, roughly 284,043 source lines, and occupied 94.7 MB. Signals recorded 21 CI workflow files, a Dockerfile, and no tests directory. That last directory observation plainly does not mean the Go checks were absent.

These measurements concern a source checkout. They give contributors a concrete effort estimate for that run, while leaving packaged-binary setup and detection quality unmeasured. We have no scan accuracy benchmark here. The failed test step is a reason to investigate that commit before embedding or extending it, rather than proof that a released scanner cannot do its job.

Restricted networks require a database delivery plan

Trivy's network documentation lists vulnerability data, a separate Java database, and a checks bundle among its external resources. These are operational inputs to account for after obtaining the executable. Downloading a binary does not settle whether a CI worker can reach the registries that supply its data.

The documentation allows databases to be hosted in your own container registry. It also describes embedded misconfiguration checks as a fallback when the external bundle is unavailable. Those checks reflect the release's bundled data. For restricted environments, decide who updates the internal copies and how workers receive them. A successful command against old data would answer a different question from a scan using current advisories.

Java analysis may contact Maven Central or other remote repositories to identify packages. The documented offline flag prevents those attempts, so verify what information your particular artifacts need before choosing it. Private image registries and Kubernetes targets also bring their existing access requirements. The source run supplied here did not exercise those deployment paths or measure their network costs.

A Python SBOM report can lose relationships without losing detection

Open issue 11411 concerns pylock.toml dependencies identified by name without a version. The reporter says those entries disappear from the dependency graph, leaving incomplete CycloneDX or SPDX relationships. It explicitly says vulnerability detection is unaffected. That distinction matters if your downstream system needs to know which package introduced another package.

The report names v0.75.0 and the main branch as its reproduction targets. It is separate from our October 9 source run, and the supplied test tail cannot connect it to our failures. Teams using affected lockfiles should inspect the generated relationship graph against the lockfile before treating an SBOM as an accurate dependency map. A list containing the package names would not establish that the edges are correct.

The README supplies another clear boundary: it warns that canary builds may contain critical bugs and recommends against production use. Choose a stable release for an operational trial. Contributors and teams requiring a fully passing source baseline should keep our unresolved failures on their adoption checklist until the missing log details are available.

Grype and OSV-Scanner offer different starting points

Grype scans container images, filesystems, and SBOMs for known vulnerabilities. Choose it when you already have an inventory workflow and need advisory matching against those artifacts. This comparison concerns documented scope. Our lab evidence does not rank its detection rate or execution speed against Trivy.

OSV-Scanner connects project dependencies with vulnerabilities in the OSV database. Its documented source scanning makes it worth comparing when dependency advisories drive your decision. It also supports containers, so choosing it need not rule out image scanning. Check your actual package files against either project's coverage before standardizing.

Recent pushes coexist with a specific unresolved report

The last push was October 21, 2026. The pylock issue had activity on October 19. That combination shows an active repository with a concrete open limitation. Neither a recent push nor the existence of a release establishes correctness for your artifacts.

Start with a stable binary against a representative image and its source directory. Decide which findings should block delivery and who owns exceptions. If an SBOM feeds another system, verify its relationships too. For work on commit 3f664e5 itself, obtain the earlier failing log lines before accepting the source baseline.

Alternatives

ProjectWhat it isPick it when
Grype gh↗A vulnerability scanner for images, filesystems, and SBOMs.pick this instead when you already have an inventory and mainly need vulnerability matching for those artifacts.
OSV-Scanner gh↗A scanner that connects project dependencies with OSV vulnerability data.pick this instead when dependency advisories and its documented source scanning match your main requirement.

What people are saying

  1. [github-trending] aquasecurity/trivy

Sources

  1. Trivy README
  2. Trivy connectivity and network considerations
  3. Python pylock dependency relationship report
  4. Grype README
  5. OSV-Scanner README
  6. Trivy repository metadata

More dev tools reviews

folly · universal-android-debloater-next-generation · OpenSandbox · You-Dont-Know-JS · evilginx2 · google-colab-cli · the whole board →