sábado, marzo 21, 2026

Acciones de GitHub de Trivy Security Scanner violadas, 75 etiquetas secuestradas para robar secretos de CI/CD

TecnologíaAcciones de GitHub de Trivy Security Scanner violadas, 75 etiquetas secuestradas para robar secretos de CI/CD

Trivy, un popular escáner de vulnerabilidades de código abierto mantenido por Aqua Security, se vio comprometido por segunda vez en el lapso de un mes para entregar malware que robaba secretos confidenciales de CI/CD.

El último incidente afectó a las acciones de GitHub «aquasecurity/trivy-action» y «aquasecurity/setup-trivy», que se utilizan para escanear imágenes del contenedor Docker en busca de vulnerabilidades y configurar el flujo de trabajo de GitHub Actions con una versión específica del escáner, respectivamente.

«Identificamos que un atacante forzó 75 de 76 etiquetas de versión en el repositorio aquasecurity/trivy-action, la acción oficial de GitHub para ejecutar análisis de vulnerabilidades de Trivy en canales de CI/CD», dijo el investigador de seguridad de Socket, Philipp Burckhardt. «Estas etiquetas se modificaron para servir una carga maliciosa, convirtiendo efectivamente las referencias de versiones confiables en un mecanismo de distribución para un ladrón de información».

La carga útil se ejecuta dentro de los ejecutores de GitHub Actions y tiene como objetivo extraer valiosos secretos de desarrollador de entornos CI/CD, como claves SSH, credenciales para proveedores de servicios en la nube, bases de datos, Git, configuraciones de Docker, tokens de Kubernetes y billeteras de criptomonedas.

Este hecho marca el segundo incidente en la cadena de suministro que involucra a Trivy. Hacia finales de febrero y principios de marzo de 2026, un robot autónomo llamado hackerbot-claw aprovechó un flujo de trabajo «pull_request_target» para robar un token de acceso personal (PAT), que luego se utilizó como arma para tomar el control del repositorio de GitHub, eliminar varias versiones de lanzamiento y enviar dos versiones maliciosas de su extensión Visual Studio Code (VS Code) a Open VSX.

La primera señal del compromiso fue señalada por el investigador de seguridad Paul McCarty después de que se publicara una nueva versión comprometida (versión 0.69.4) en el repositorio de GitHub «aquasecurity/trivy». Desde entonces, la versión fraudulenta ha sido eliminada. Según Wiz, la versión 0.69.4 inicia tanto el servicio legítimo Trivy como el código malicioso responsable de una serie de tareas:

  • Realice el robo de datos escaneando el sistema en busca de variables ambientales y credenciales, cifrando los datos y extrayéndolos a través de una solicitud HTTP POST a scan.aquasecurtiy(.)org.
  • Configure la persistencia utilizando un servicio systemd después de confirmar que se está ejecutando en una máquina de desarrollador. El servicio systemd está configurado para ejecutar un script Python («sysmon.py») que sondea un servidor externo para recuperar la carga útil y ejecutarla.

En una declaración, Itay Shakury, vicepresidente de código abierto de Aqua Security, dijo que los atacantes abusaron de una credencial comprometida para publicar versiones maliciosas de trivy, trivy-action y setup-trivy. En el caso de «aquasecurity/trivy-action», el adversario impulsó 75 etiquetas de versión para señalar las confirmaciones maliciosas que contienen la carga útil del robo de información de Python sin crear una nueva versión ni enviar a una rama, como es la práctica estándar. Se forzaron siete etiquetas de «aquasecurity/setup-trivy» de la misma manera.

«Entonces, en este caso, el atacante no necesitaba explotar Git», dijo Burckhardt a The Hacker News. «Tenían credenciales válidas con privilegios suficientes para enviar código y reescribir etiquetas, que es lo que permitió el envenenamiento de etiquetas que observamos. Lo que no está claro es la credencial exacta utilizada en este paso específico (por ejemplo, un PAT de mantenimiento frente a un token de automatización), pero ahora se entiende que la causa principal es el compromiso de credenciales transferido del incidente anterior».

El proveedor de seguridad también reconoció que el último ataque se debió a una contención incompleta del incidente del hackerbot-claw. «Rotamos secretos y tokens, pero el proceso no fue atómico y es posible que los atacantes hayan estado al tanto de los tokens actualizados», dijo Shakury. «Ahora estamos adoptando un enfoque más restrictivo y bloqueando todas las acciones automatizadas y cualquier token para eliminar completamente el problema».

El ladrón opera en tres etapas: recolecta variables de entorno de la memoria del proceso del ejecutor y del sistema de archivos, cifra los datos y los extrae al servidor controlado por el atacante («scan.aquasecurtiy(.)org»).

Si el intento de exfiltración falla, se abusa de la propia cuenta de GitHub de la víctima para almacenar los datos robados en un repositorio público llamado «tpcp-docs» mediante el uso del INPUT_GITHUB_PAT capturado, una variable de entorno utilizada en GitHub Actions para pasar una PAT de GitHub para la autenticación con la API de GitHub.

Actualmente no se sabe quién está detrás del ataque, aunque hay indicios de que el actor de amenazas conocido como TeamPCP puede estar detrás. Esta evaluación se basa en el hecho de que el recolector de credenciales se autoidentifica como «ladrón de nubes de TeamPCP» en el código fuente. También conocido como DeadCatx3, PCPcat, PersyPCP, ShellForce y CipherForce, el grupo es conocido por actuar como una plataforma de cibercrimen nativa de la nube diseñada para violar la infraestructura moderna de la nube y facilitar el robo de datos y la extorsión.

«Los objetivos de credenciales en esta carga útil son consistentes con el perfil más amplio de robo y monetización nativo de la nube del grupo», dijo Socket. «El fuerte énfasis en los pares de claves del validador de Solana y las billeteras de criptomonedas está menos documentado como un sello distintivo de TeamPCP, aunque se alinea con las motivaciones financieras conocidas del grupo. El autoetiquetado podría ser una bandera falsa, pero la superposición técnica con las herramientas anteriores de TeamPCP hace que la atribución genuina sea plausible».

Se recomienda a los usuarios que se aseguren de utilizar las últimas versiones seguras:

«Si sospecha que estaba ejecutando una versión comprometida, trate todos los secretos del canal como comprometidos y rótelos inmediatamente», dijo Shakury. Los pasos de mitigación adicionales incluyen bloquear el dominio de exfiltración y la dirección IP asociada (45.148.10(.)212) a nivel de red y verificar las cuentas de GitHub en busca de repositorios denominados «tpcp-docs», lo que puede indicar una exfiltración exitosa a través del mecanismo de reserva.

«Fije las acciones de GitHub a hashes SHA completos, no a etiquetas de versión», dijo el investigador de Wiz, Rami McCarthy. «Las etiquetas de versión se pueden mover para señalar confirmaciones maliciosas, como se demuestra en este ataque».

(Esta es una historia en desarrollo. Vuelva a consultarla para obtener más detalles).

Artículos más populares