Alerta: Compromiso de Trivy en GitHub expone secretos de CI/CD
Publicado el
Compromiso de Trivy Security Scanner
Trivy, un escáner de vulnerabilidades de código abierto muy utilizado, ha sido víctima de un segundo ataque en un mes, que ha permitido la distribución de malware destinado a robar secretos sensibles de entornos CI/CD. Este último incidente afectó a las acciones de GitHub "aquasecurity/trivy-action" y "aquasecurity/setup-trivy", utilizadas para escanear imágenes de contenedores Docker y configurar flujos de trabajo en GitHub Action.
Según el investigador de seguridad Philipp Burckhardt, se identificó que un atacante forzó la modificación de 75 de las 76 etiquetas de versión en el repositorio de "aquasecurity/trivy-action", que es la acción oficial de GitHub para ejecutar escaneos de vulnerabilidades con Trivy. Estas etiquetas fueron alteradas para servir como un mecanismo de distribución de un infostealer.
El payload malicioso se ejecuta dentro de los runners de GitHub Actions, con el objetivo de extraer secretos valiosos de los desarrolladores, tales como claves SSH, credenciales de proveedores de servicios en la nube, bases de datos, configuraciones de Git, configuraciones de Docker, tokens de Kubernetes y billeteras de criptomonedas.
Segundo incidente de la cadena de suministro
Este ataque marca la segunda vez que Trivy se ve involucrado en un incidente de cadena de suministro. A finales de febrero y principios de marzo de 2026, un bot autónomo llamado hackerbot-claw explotó un flujo de trabajo de "pull_request_target" para robar un Personal Access Token (PAT). Este token fue utilizado para tomar control del repositorio de GitHub, eliminar varias versiones de lanzamiento y subir dos versiones maliciosas de su extensión de Visual Studio Code a Open VSX.
El primer indicio del compromiso fue señalado por el investigador de seguridad Paul McCarty tras la publicación de una nueva versión comprometida (0.69.4) en el repositorio de "aquasecurity/trivy". Esta versión maliciosa ha sido eliminada desde entonces. Según Wiz, la versión 0.69.4 inicia tanto el servicio legítimo de Trivy como el código malicioso responsable de una serie de tareas, que incluyen el robo de datos mediante el escaneo del sistema en busca de variables ambientales y credenciales, encriptando los datos y exfiltrándolos a través de una solicitud HTTP POST a scan.aquasecurity[.]org.
Proceso de ataque y medidas de mitigación
El ataque se ejecuta en tres etapas: la recolección de variables ambientales del proceso de runner y del sistema de archivos, la encriptación de los datos y la exfiltración hacia un servidor controlado por el atacante. Si la exfiltración falla, se abusa de la cuenta de GitHub de la víctima para almacenar los datos robados en un repositorio público llamado tpcp-docs utilizando el INPUT_GITHUB_PAT, una variable de entorno que se usa en GitHub Actions para autenticar con la API de GitHub.
No se ha identificado al atacante, aunque se sospecha que el grupo conocido como TeamPCP está detrás de este ataque. Esta evaluación se basa en que el recolector de credenciales se identifica como "TeamPCP Cloud stealer" en su código fuente. Este grupo es conocido por operar como una plataforma de cibercrimen nativa de la nube, diseñada para vulnerar infraestructuras modernas y facilitar el robo de datos y extorsión.
El análisis de Socket indica que los objetivos de credenciales en este payload son consistentes con el perfil de robo y monetización más amplio del grupo. La fuerte énfasis en pares de claves de validadores de Solana y billeteras de criptomonedas, aunque menos documentada, también se alinea con las motivaciones financieras conocidas del grupo.
Conclusiones
Aqua Security ha admitido que el ataque más reciente se debió a la falta de contención del incidente con hackerbot-claw. Aunque se rotaron secretos y tokens, el proceso no fue atómico, lo que permitió que los atacantes tuvieran acceso a los tokens renovados. En respuesta, ahora se están tomando medidas más restrictivas para asegurar todas las acciones automatizadas y los tokens, con el fin de eliminar completamente la amenaza.