top of page

Vulnerabilidad crítica en GitHub expone más de 4,000 repositorios a un ataque de "repojacking"



Una nueva vulnerabilidad divulgada en GitHub podría haber expuesto a miles de repositorios al riesgo de ataques de "repojacking", según muestran nuevos hallazgos.


La falla "podría permitir que un atacante aproveche una condición de carrera dentro de las operaciones de creación de repositorios y cambio de nombre de usuario de GitHub", dijo Elad Rapoport, investigador de seguridad de Checkmarx, en un informe técnico compartido con The Hacker News.


"La explotación exitosa de esta vulnerabilidad afecta a la comunidad de código abierto al permitir el secuestro de más de 4,000 paquetes de código en lenguajes como Go, PHP y Swift, así como las acciones de GitHub".


Tras la divulgación responsable el 1 de marzo de 2023, la plataforma de alojamiento de código propiedad de Microsoft ha abordado el problema a partir del 1 de septiembre de 2023.


El "repojacking", abreviatura de secuestro de repositorio, es una técnica en la que un actor de amenazas puede eludir un mecanismo de seguridad llamado jubilación de espacio de nombres de repositorio popular y, en última instancia, tomar el control de un repositorio.


Lo que hace la medida de protección es evitar que otros usuarios creen un repositorio con el mismo nombre que un repositorio con más de 100 clones en el momento en que se cambia el nombre de su cuenta de usuario. En otras palabras, se considera "jubilada" la combinación del nombre de usuario y el nombre del repositorio.


Si esta protección se pudiera eludir fácilmente, podría permitir que actores de amenazas creen nuevas cuentas con el mismo nombre de usuario y carguen repositorios maliciosos, lo que podría dar lugar a ataques a la cadena de suministro de software.


El nuevo método descrito por Checkmarx aprovecha una posible condición de carrera entre la creación de un repositorio y el cambio de nombre de un usuario para llevar a cabo un "repojacking". Específicamente, implica los siguientes pasos:


1. El usuario víctima es propietario del espacio de nombres "victim_user/repo".

2. El usuario víctima cambia su nombre de usuario de "victim_user" a "renamed_user".

3. El repositorio "victim_user/repo" se considera jubilado en este punto.

4. Un actor de amenazas con el nombre de usuario "attacker_user" crea simultáneamente un repositorio llamado "repo" y cambia su nombre de usuario de "attacker_user" a "victim_user".


El último paso se realiza mediante una solicitud de API para la creación del repositorio y una interceptación de solicitud para el cambio de nombre de usuario. Este descubrimiento se produce aproximadamente nueve meses después de que GitHub parcheara una vulnerabilidad similar de bypass que podría abrir la puerta a ataques de "repojacking".


"El descubrimiento de esta nueva vulnerabilidad en las operaciones de creación de repositorios y cambio de nombre de usuario de GitHub subraya los riesgos persistentes asociados con el mecanismo de 'jubilación de espacio de nombres de repositorio popular'", dijo Rapoport.


¿Quieres saber más?


23 visualizaciones0 comentarios
bottom of page