Este incidente representa un sofisticado ataque a la cadena de suministro que explotó una credencial comprometida para manipular tags de Git en el repositorio oficial de GitHub Actions de Trivy. La causa raíz fue la persistencia de acceso de un atacante a credenciales válidas, a pesar de una rotación de secretos previa, lo que indica una falla en la atomicidad o exhaustividad del proceso de revocación de acceso tras una brecha inicial.

El atacante utilizó una técnica ingeniosa de "force-push" en 75 tags de versión existentes, en lugar de crear nuevas ramas o releases. Esto permitió inyectar un payload malicioso (un infostealer) en el entrypoint.sh de la acción, mientras que el resto del árbol de archivos se basó en el HEAD de master. La metadata de los commits fue cuidadosamente falsificada para que pareciera legítima, lo que dificultó la detección a simple vista. Las salvaguardas como las firmas GPG de GitHub y los contadores de commits en la UI de releases fallaron en alertar a los usuarios de manera efectiva debido a la naturaleza de la manipulación de tags y la falsificación de la metadata.

El payload malicioso fue diseñado para ejecutarse en entornos de CI/CD, priorizando la exfiltración de secretos. En runners alojados por GitHub (Linux), el malware escaló privilegios usando sudo para volcar la memoria del proceso Runner.Worker y extraer secretos en el formato interno de GitHub Actions. En otros entornos, empleó un recolector de credenciales basado en el sistema de archivos. La exfiltración se realizó a un dominio de typosquatting (scan.aquasecurtiy.org) con un canal de fallback resiliente que creaba un repositorio público en la cuenta de GitHub de la víctima para almacenar los datos cifrados, aprovechando PATs con scope de usuario. La sofisticación del ataque y la atribución a TeamPCP (DeadCatx3) subrayan la amenaza persistente de actores especializados en entornos cloud-native.