Il 19 marzo Trivy, uno degli scanner di vulnerabilità open source più usati per container, codice e infrastrutture, è diventato uno strumento per rubare credenziali. L’incidente è registrato come CVE-2026-33634 ed è attribuito a un gruppo che si fa chiamare TeamPCP. C’è un’ironia evidente nel fatto che a tradire le pipeline sia proprio lo strumento installato per proteggerle.
La storia comincia prima. A fine febbraio gli attaccanti avevano già sottratto credenziali al progetto sfruttando un workflow GitHub configurato male. La rotazione che ne era seguita non era stata completa, e qualcosa era rimasto valido. Il 19 marzo, con l’account di servizio usato per le pubblicazioni, hanno messo in circolo una versione malevola, la v0.69.4, distribuita automaticamente su GitHub, Docker Hub, GHCR e Amazon ECR e rimossa dopo circa tre ore. Nello stesso giorno hanno spostato 76 dei 77 tag di versione della GitHub Action aquasecurity/trivy-action e tutti e 7 i tag di aquasecurity/setup-trivy su commit malevoli, rimasti attivi per circa dodici ore.
La scansione andava a buon fine
Il codice malevolo partiva prima della scansione vera, che poi si svolgeva normalmente. Le pipeline restavano verdi, i report arrivavano, nessuno aveva motivo di insospettirsi. Intanto il codice raccoglieva i segreti del runner, come token, chiavi cloud e credenziali dei registri, e li spediva agli attaccanti. Il 23 marzo lo stesso schema è comparso nelle GitHub Actions di un altro produttore di strumenti di sicurezza. Quante organizzazioni abbiano perso segreti, al momento, non si sa.
È la replica di quanto successo esattamente un anno fa con tj-actions. Anche allora i tag mobili, quelli come v1 o latest, non hanno protetto nessuno. Si è salvato solo chi usava l’unica versione pubblicata come rilascio immutabile.
Cerca nei tuoi workflow trivy-action, setup-trivy e l’uso di Trivy 0.69.4, e controlla le esecuzioni del 19 e 20 marzo. Se cadono nella finestra di compromissione, ruota tutti i segreti accessibili a quelle pipeline. Usa le versioni che il progetto indica come sicure e verifica le immagini con le firme ufficiali.
Poi fissa ogni action all’hash completo del commit e limita le connessioni in uscita dei runner. La lezione più amara di questa storia, però, riguarda febbraio: dopo un incidente, ruota tutte le credenziali, anche quelle che sembrano non coinvolte.



