Trivy ecosystem supply chain temporarily compromised (github.com)

by batch12 37 comments 102 points
Read article View on HN

37 comments

[−] jl6 55d ago
To be clear, this is a supply chain attack on everyone that uses Trivy, not a supply chain attack on Trivy. It was a direct attack on Trivy, exploiting components that Aqua had full control and responsibility for. The term “supply chain attack” has a connotation of “it’s not really my fault, it was my dependencies that got compromised”.

Of course, every entity is ultimately accountable for its own security, including assigning a level of trust to any dependencies, so it’s ultimately no excuse, but getting hit by a supply chain attack does evoke a little more sympathy (“at least I did my bit right”), and I feel like the ambiguous wording of the title is trying to access some of that sympathy.

[−] dec0dedab0de 54d ago
The term “supply chain attack” has a connotation of “it’s not really my fault, it was my dependencies that got compromised”.

In my experience that is definitely not true, and I've never heard anyone use it that way. Even though you are correct in who the target was.

[−] BrandoElFollito 54d ago
A supply chain attack is an attack on a provider of a solution that is then deployed further. The issue with a supply chain attack is that the ultimate victim brings in trusted software that was compromised upstream.
[−] Shank 55d ago
This attack seems predicated on a prior security incident (https://socket.dev/blog/unauthorized-ai-agent-execution-code...) at Trivy where they failed to successfully remediate and contain the damage. I think at this time, Trivy should’ve undertaken a full reassessment of risks and clearly isolated credentials and reduced risk systemically. This did not happen, and the second compromise occurred.
[−] NewJazz 55d ago
They did a lot of what you describe, although perhaps not well enough.
[−] Shank 54d ago
It seems not enough again, as their Docker images have now been compromised (as of March 22nd, 2026): https://github.com/aquasecurity/trivy/security/advisories/GH...
[−] MilnerRoute 55d ago
Briefly?

"Trivy Supply Chain Attack Spreads, Triggers Self-Spreading CanisterWorm Across 47 npm Packages"

https://it.slashdot.org/story/26/03/22/0039257/trivy-supply-...

[−] zach_vantio 55d ago
"Briefly" is doing a lot of work there. Pre-deploy scans are useless once a bad mutation is actually live. If you don't have a way to auto-revert the infrastructure state instantly, you're just watching the fire spread.
[−] brightball 55d ago
Seriously. All credentials compromised that it can see. It's active in CI/CD pipelines and follow on attacks are happening.
[−] woodruffw 55d ago
I don’t think “briefly compromised” is accurate. The short span between this and the previous compromise of trivy suggests that the attacker was able to persist between their two periods of activity.
[−] AdrienPoupa 55d ago
Don't forget to pin your GitHub Actions to SHAs instead of tags, that may or may not be immutable!
[−] woodruffw 55d ago
Frustratingly, hash pinning isn’t good enough here: that makes the action immutable, but the action itself can still make mutable decisions (like pulling the “latest” version of a binary from somewhere on the internet). That’s what trivy’s official action appears to do.

(IOW You definitely should still hash-pin actions, but doing so isn’t sufficient in all circumstances.)

[−] AdrienPoupa 55d ago
That's true. This specific attack was mitigated by hash pinning, but some actions like https://github.com/1Password/load-secrets-action default to using the latest version of an underlying dependency.
[−] cpuguy83 55d ago
This attack was not mitigated by hash pinning. The setup-trivy action installs the latest version of trivy unless you specify a version.
[−] AdrienPoupa 55d ago
Oh, I was referring to aquasecurity/trivy-action that was changed with a malicious entrypoint for affected tags. Pinned commits were not affected.
[−] NewJazz 55d ago
I'm pretty sure the trivy action does not do that.
[−] woodruffw 55d ago
FWICT, it pulls the latest version of trivy by default. If that latest tag is a mutable pointer (and it typically is), then it exhibits the problem.
[−] feross 55d ago
Lots more technical research about the actual attack and how it worked here: https://socket.dev/blog/trivy-under-attack-again-github-acti...

Disclosure: I’m the founder of Socket.

[−] snailmailman 55d ago
Are the spam comments all from compromised accounts, presumably compromised due to this hack?

I only clicked on a handful of accounts but several of them have plausibly real looking profiles.

[−] philipwhiuk 54d ago
[−] h4kunamata 52d ago
Still compromised: https://socket.dev/blog/trivy-under-attack-again-github-acti...

This is a very old vulnerability, and to see companies falling for it is mental.

The year is 2026 and companies are still using tag over hash. It is well known that you can release different code under the same tag without alerting users.

[−] swq115 55d ago
The irony of your vulnerability scanner being the vulnerability.
[−] RS-232 55d ago
Pretty ironic that the security tool is insecure
[−] tridion 54d ago
Мы позвали царского дегустатора проверить суп на яд, но яд оказался на его ложке.
[−] duckmysick 55d ago

> credential rotation was performed but was not atomic (not all credentials were revoked simultaneously).

How do you simultaneously revoke all credentials of all your accounts spanning multiple services/machines/users?

[−] 4riel 55d ago
yeah, we keep learning the same lesson: the tool that audits your supply chain is the single best target for compromising it
[−] michaelmoreira 48d ago
[dead]
[−] robutsume 55d ago
[dead]
[−] michaelmoreira 49d ago
[dead]
[−] qkitzero 55d ago
[dead]