Fantasma en el repositorio: alguien sin dirección de correo se ha instalado en el historial de tus commits

Fantasma en el repositorio: alguien sin dirección de correo se ha instalado en el historial de tus commits

Una etiqueta extraña en los registros presagia graves problemas

image

Un ataque a gran escala contra la cadena de suministro de software afectó a cientos de repositorios en GitHub. Los atacantes secuestran cuentas de desarrolladores e introducen silenciosamente código malicioso en proyectos populares de Python, incluidas bibliotecas, aplicaciones web e investigaciones.

El equipo StepSecurity registró la campaña denominada «ForceMemo». Las primeras infecciones aparecieron el 8 de marzo de 2026, tras lo cual el número de repositorios comprometidos continuó creciendo. El código malicioso se añade a archivos clave como setup.py, main.py o app.py. Al instalar el paquete o ejecutar el proyecto se activa una carga oculta.

El secuestro de cuentas ocurre a través del malware GlassWorm, que se distribuye mediante extensiones infectadas para Visual Studio Code y Cursor. El programa roba tokens de acceso a GitHub desde distintas fuentes, incluidos archivos locales y variables de entorno. Al obtener acceso, el atacante inyecta código en todos los repositorios de la víctima.

El método de sustitución resulta especialmente sigiloso. El atacante toma el último commit legítimo, añade código malicioso y realiza un envío forzado (force push) de los cambios. De ese modo, el historial del repositorio conserva el autor, el mensaje y la fecha anteriores, y la suplantación solo revela la fecha del committer. En muchos casos en el campo de correo electrónico aparece «null», lo que se ha convertido en un rasgo característico del ataque.

Tras su ejecución, el programa no se conecta a un servidor de control habitual, sino a la blockchain Solana. Allí se almacena un enlace a la siguiente fase del ataque, lo que hace la infraestructura resistente a bloqueos. Tras recibir la instrucción, el malware descarga Node.js, recupera un archivo JavaScript cifrado y lo ejecuta. En el sistema se crea un archivo para volver a ejecutarse pasados dos días. Este esquema es característico de los ladrones de datos y de las carteras criptográficas.

El análisis de la actividad mostró que la infraestructura del ataque se ha utilizado desde finales de 2025. La actual oleada en GitHub fue una evolución de la campaña previa GlassWorm. Anteriormente los atacantes ya infectaban repositorios, pero empleaban otros métodos de camuflaje.

Se vieron afectados proyectos basados en Django, Flask, Streamlit y bibliotecas instaladas directamente desde GitHub. En varios casos la infección afectó a varios repositorios de un mismo propietario u organización, lo que confirma la compromisión de las cuentas.

El ataque sigue activo. Se recomienda a los desarrolladores revisar el historial de commits, fijarse en discrepancias de fechas y buscar el marcador característico del código malicioso. También conviene controlar la aparición de archivos sospechosos y de conexiones de red inesperadas durante la compilación de los proyectos.