Bug en GitHub permitiría a un atacante suplantar repositorios
El servicio de hosting de repositorios de código en la nube GitHub ha identificado un fallo de seguridad grave que podría haberse explotado para tomar el control de repositorios ajenos y crear ataques a cadenas de suministro de software.
Antecedentes
Este tipo de ataque, denominado repojacking, ocurre cuando el creador de un repositorio decide cambiar su nombre de usuario. Esto implica que la URL del repositorio cambiaría de usuario/repo a nuevousuario/repo. Durante el proceso de renombrado, un atacante puede cambiar su nombre de usuario al nombre antiguo que utilizaba la víctima y crear un repositorio bajo el mismo nombre, suplantándolo.
Como contramedida, si se clona un repositorio más de 100 veces durante la semana en la que el dueño del repositorio cambia su nombre de usuario, ese repositorio está «retirado» (retired). Esto significa que la combinación de nombre de usuario y nombre de repositorio no se puede volver a registrar. Si el repositorio usuario/repo ha sido clonado más de 100 veces esta semana, su dueño cambia su nombre de usuario y después otra persona intenta crear un repositorio en la URL usuario/repo, no podrá hacerlo.
Descripción del ataque
Sin embargo, Checkmarx ha revelado que esta protección no es suficiente. En un artículo publicado el 26 de octubre, se muestra una manera de evadir el mecanismo de retiro de repositorios populares (popular repository namespace retirement) utilizando una cuenta auxiliar y la funcionalidad de transferencia de repositorios de GitHub. El procedimiento es el siguiente:
- El atacante crea un repositorio con el mismo nombre que el repositorio retirado (por ejemplo, repo), pero bajo un nombre de usuario diferente (por ejemplo, cómplice).
- Cómplice transfiere la propiedad del repositorio repo al atacante.
- Atacante renombra su usuario al nombre de usuario original de la víctima (por ejemplo, víctima). De esta forma, el repositorio víctima/repo queda bajo el control del actor malicioso.
Checkmarx ha encontrado la vulnerabilidad el 13 de junio de 2022 y GitHub la eliminó tres meses después, el 19 de septiembre.
Conclusiones
De haberse explotado esta vulnerabilidad, más de 10.000 paquetes alojados en gestores de paquetes como Packagist, Go o Swift estarían en riesgo. Además, al tomar el control de las GitHub Actions, que también pueden robarse mediante el ataque anteriormente descrito, es posible envenenar las cadenas de suministro de software, con graves repercusiones.
Además, para identificar paquetes susceptibles de ser víctimas de repojacking, Checkmarx ha publicado la herramienta Chainjacking.
En todo caso, puede que el exploit de Checkmarx no sea la única forma de tomar el control de un repositorio ajeno a partir de un cambio de nombre de usuario.
Más información:
Etiquetado en: GitHub Repositorio Repojacking
Noviembre 1, 2022 09:19 AM
Fuente: unaaldia.hispasec.com
Publicado por: Cecilia Coria
Alertas
Alerta en Linux por fallo Pack2TheRoot que permite escalda de privilegios
Una red de ordenadores bots lanza un ciberataque para robar cuentas de Microsoft 365
Vulnerabilidad en PostgreSQL explotada en ataques dirigidos
Nuevas vulnerabilidades de OpenSSH permiten ataques MitM y DoS
Ciberseguridad