Anfang März informierten die Maintainer von Trivy darüber, dass das GitHub-Repository des Scanners über ein Problem in einem GitHub-Actions-Workflow kompromittiert worden war. Einige Releases wurden gelöscht, und manipulierte Versionen der VS-Code-Erweiterung erschienen im Open-VSIX-Marktplatz. Der Vorfall gehörte zu einer breiteren, automatisierten Angriffskampagne, die über GitHub-Actions-Workflows mehrere Open-Source-Repositorys traf; in zwei bösartige Varianten der VS-Code-Erweiterung wurde dabei ein umfangreicher natürlichsprachlicher Prompt eingeschleust.
Nach der ersten Offenlegung wurden zwar die Zugangsdaten rotiert, dies geschah jedoch nicht atomar – nicht alle Anmeldedaten wurden gleichzeitig widerrufen. Wie die Maintainer in einem Hinweis vom 21. März einräumen, konnte der Angreifer so mit einem noch gültigen Token während des mehrtägigen Rotationsfensters frisch erneuerte Secrets abgreifen. Diese erbeuteten Zugangsdaten nutzten die Täter für einen neuen Lieferketten-Angriff, der neben dem Trivy-Paket auch trivy-action und setup-trivy traf.
Mit den kompromittierten Anmeldedaten veröffentlichten die Angreifer ein bösartiges Trivy-Release in der Version v0.69.4 und verteilten es über alle regulären Kanäle, darunter GitHub Container Registry, Amazon ECR Public und Docker Hub. Zudem überschrieben sie per Force-Push 76 von 77 Versions-Tags von trivy-action mit manipulierten Commits. Die Folge waren Infektionen mit einem Infostealer, der den Speicher des Runner-Worker-Prozesses ausliest und sämtliche Secrets daraus extrahiert.
Die Malware verschlüsselt die gesammelten Daten und sendet sie an einen entfernten Server. Schlägt die Exfiltration fehl, legt sie ein öffentliches GitHub-Repository an und lädt die Daten dorthin hoch. Auch bei setup-trivy wurden alle Tags per Force-Push auf manipulierte Commits gesetzt, was zum selben Infostealer führte. Technische Details zum Angriff und zur Malware veröffentlichten Socket und Wiz.
Nach Angaben von Aqua ist keines der kommerziellen Produkte betroffen, die Trivy einsetzen, da die abgespaltene Version der kommerziellen Plattform dem Open-Source-Trivy über einen kontrollierten Integrationsprozess hinterherläuft. Das Unternehmen warnte allerdings, der Angriff dauere an und entwickle sich weiter; am 22. März seien verdächtige Aktivitäten mit unautorisierten Änderungen und Manipulationen an Repositorys festgestellt worden. Die Untersuchung konzentriere sich darauf, alle Zugangswege zu identifizieren und vollständig zu schließen.
Die Maintainer stellten bereinigte Versionen bereit: Trivy v0.69.2 und v0.69.3, trivy-action v0.35.0 sowie setup-trivy v0.2.6. Da die ursprünglichen trivy-action-Tags bei der Bereinigung gelöscht wurden, erhielten die neuen Tags ein vorangestelltes „v". Nutzer, auf deren Systemen eine kompromittierte Version lief, sollten alle Zugangsdaten, Tokens und übrigen Secrets rotieren. Ein im GitHub-Konto auftauchendes Repository namens tpcp-docs kann darauf hindeuten, dass der Ausweich-Mechanismus zur Exfiltration ausgelöst und Secrets erfolgreich gestohlen wurden.
Der Angriff wird dem Akteur TeamPCP zugeschrieben, der seine Aktivitäten nach dem Trivy-Vorfall ausweitete und das NPM-Ökosystem mit der Malware CanisterWorm angriff. Laut Aikido kompromittierte TeamPCP über 45 NPM-Pakete und versah sie mit einem Post-Install-Loader, der eine dauerhafte Python-Backdoor nachlädt; die Steuerung erfolgt über einen ICP-Canister als Dead-Drop für Befehle. CanisterWorm kann NPM-Tokens auslesen, Benutzernamen auflösen, veröffentlichte Pakete aufzählen, neue Paketversionen erstellen und die Schadlast über alle hinweg veröffentlichen. Das selbstverbreitende Werkzeug nutzt keine Verschleierung, fragt den ICP-Canister alle 50 Minuten ab und lässt sich entschärfen, indem der Canister auf einen YouTube-Link verweist. Der finanziell motivierte Akteur trat Ende 2025 in Erscheinung und nimmt cloud-native Infrastruktur über exponierte CI/CD-Pipelines, Docker-APIs und Kubernetes-Cluster ins Visier.
