Trivy Supply Chain Compromise on Docker Hub

Threat actors turned a popular vuln scanner into a credential thief. Docker Hub users: check your logs yesterday.

Compromised Trivy Docker image tags on Docker Hub with malware warning overlay

Key Takeaways

  • Hunt specific SHA256 digests from compromised Trivy images immediately.
  • Pin to aquasec/trivy:0.69.3; ditch 'latest' tags forever.
  • Supply chain attacks demand image signing and SLSA compliance now.

Trivy supply chain compromise just exposed Docker’s soft underbelly.

And here’s the brutal truth — attackers didn’t just slip malware into Aqua’s vulnerability scanner; they waltzed right into the CI/CD pipeline, pushing poisoned images that looked legit, tags and all. Between March 19 and 23, 2026, anyone pulling aquasec/trivy:0.69.4, 0.69.5, 0.69.6, or plain old ‘latest’ potentially handed over SSH keys, cloud creds, Docker configs. Docker yanked them fast, but damage? Already done for the unwary.

What the Attackers Actually Did

They compromised Aqua’s build system first. Used stolen creds to authenticate pushes to Docker Hub — indistinguishable from real Aqua activity. Infostealer malware baked right in, targeting ~/.docker/config.json, AWS/GCP/Azure keys, env files, even Kubernetes tokens. Mount the Docker socket? Kiss the host goodbye; root access granted.

One wave on March 19 with 0.69.4 and latest. Aqua cleans up — attackers repoint latest on March 20. Then 0.69.5 and 0.69.6 hit March 22. Docker spots it March 23 around 8 AM UTC, quarantines by 3 PM. Last clean version: 0.69.3.

“Attackers used compromised credentials to push images to Aqua Security’s own repository on Docker Hub through their build system. Since these pushes used Aqua Security’s credentials, they were authenticated by Docker Hub and were indistinguishable from normal Aqua Security activity.”

That’s straight from Docker’s advisory. Chilling, right? No red flags on ingestion.

Why Did This Slip Through?

Docker Hub trusts repo owners implicitly. Authenticated pushes? Green light. No content scanning by default for official images — that’s on you, the puller. Aqua’s CI/CD was the weak link; one breached account, and boom, supply chain owned. Remember XZ Utils last year? That near-backdoor in Linux distros? Same playbook: insider-ish access to poison builds.

But here’s my unique angle — this isn’t just another breach; it’s a referendum on ‘latest’ tags. They’re convenience crack cocaine for devs, but attackers love ‘em. Repointing latest is trivial post-compromise. Historical parallel? SolarWinds 2020, where attackers lived in the build pipe for months. Trivy? Days, but the exfil potential rivals it for cloud-native teams.

Short para: Pin versions. Always.

Now, sprawling reality check. DevOps pipelines chug Trivy for SBOMs and vuln scans — irony drips as the scanner becomes the vuln. If your GitHub Actions or Jenkins pulled during that window, mirrors or caches might still hold the poison. Those three SHA256 digests? Hunt ‘em down:

sha256:27f446230c60bbf0b70e008db798bd4f33b7826f9f76f756606f5417100beef3

sha256:5aaa1d7cfa9ca4649d6ffad165435c519dc836fa6e21b729a2174ad10b057d2b

sha256:425cd3e1a2846ac73944e891250377d2b03653e6f028833e30fc00c1abbc6d33

Found any? Nuke the image, rotate everything — and I mean everything that socket-mount touched. Docker Hardened Images? Safe. Docker infra? Untouched. But Aqua’s cross-channel hits (npm, GitHub too) mean check those vectors.

Was Your Trivy Pull Compromised?

Pulled aquasec/trivy March 19 18:24 UTC to March 23 01:36 UTC? Those tags? You’re at risk. Scan local stores, Artifactory, Nexus. No digest match? Breathe — but verify you’re on 0.69.3 or a fresh Aqua release.

Look.

Common setups mount /var/run/docker.sock. That flips the script — container owns the host. Assume full compromise. Rotate creds across the board: GitHub PATs, cloud IAM, SSH everywhere.

Why Does This Matter for DevOps Teams?

Supply chain attacks aren’t hypotheticals anymore. They’re quarterly. Trivy users — thousands of repos, CI/CD heavyweights — just got a wake-up. Docker’s response was swift (props), but detection lagged days. Aqua’s PR spin? “Isolated to our images” — sure, but your pipeline ate it.

Bold prediction: By 2027, ‘latest’ tags die in enterprise. Sigstore orcosign attestation becomes table stakes. Docker Hub pushes image signing mandates, or loses to Harbor/Artifact Registry. We’ve seen it brewing post-Snyk, post-Log4j. This accelerates it.

Critique time. Aqua Security — irony of a vuln scanner team getting pwned in the pipe. Their cleanup was reactive; attackers repointed latest after first purge. Devs, don’t blame Docker Hub alone; it’s the ecosystem’s shared blindness to runtime exfil in “trusted” tools.

Medium para. Fix now: docker pull aquasec/trivy:0.69.3. Pin it in docker-compose, Helm, wherever. Enable vulnerability scanning on your pulls — Cosign verify, or Trivy ironies aside, Grype.

And GitHub? Advisory GHSA-cxm3-wv7p-598c covers Actions. npm too. Multi-channel poison demands multi-channel audits.

One sentence: Ecosystems evolve or bleed.

Deep dive on architecture shift. CI/CD pipelines treat images as atomic trust units. Wrong. They’re pipelines themselves — builds, tags, pushes. Compromise upstream, own downstream. Solution? Bill-of-materials at pull time (SLSA frameworks), ephemeral creds, socket isolation via Kaniko or Buildah. Why? Because mounting docker.sock is 2020s rootkit bait.

But — silver lining? Incidents like this forge better defaults. Docker’s quarantine shows they’re listening.


🧬 Related Insights

  • Read more:
  • Read more:

Frequently Asked Questions

What is the Trivy supply chain compromise?

Attackers hijacked Aqua’s CI/CD to inject malware into Trivy Docker images (0.69.4-0.69.6, latest), stealing secrets from March 19-23, 2026.

How do I check if I pulled compromised Trivy images?

Search for these SHA256 digests in your registries/caches and scan pull logs for those tags in the timeframe.

Should I rotate credentials after Trivy hack?

Yes, immediately if any suspect image ran, especially with Docker socket mounted — treat host as fully owned.

Priya Sundaram
Written by

Hardware and infrastructure reporter. Tracks GPU wars, chip design, and the compute economy.

Frequently asked questions

What is the Trivy supply chain compromise?
Attackers hijacked Aqua's CI/CD to inject malware into Trivy Docker images (0.69.4-0.69.6, latest), stealing secrets from March 19-23, 2026.
How do I check if I pulled compromised Trivy images?
Search for these SHA256 digests in your registries/caches and scan pull logs for those tags in the timeframe.
Should I rotate credentials after Trivy hack?
Yes, immediately if any suspect image ran, especially with Docker socket mounted — treat host as fully owned.

Worth sharing?

Get the best AI stories of the week in your inbox — no noise, no spam.

Originally reported by Docker Blog

Stay in the loop

The week's most important stories from theAIcatchup, delivered once a week.