GitHub

Una nueva vulnerabilidad revelada 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 a un atacante explotar una condición de carrera dentro de las operaciones de creación del repositorio de GitHub y cambio de nombre de nombre de usuario», dijo el investigador de seguridad de Checkmarx, Elad Rapoport , en un informe técnico compartido con The Hacker News.

«La explotación exitosa de esta vulnerabilidad impacta 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 acciones de GitHub».

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

Repojacking , abreviatura de secuestro de repositorio , es una técnica mediante la cual un actor de amenazas puede eludir un mecanismo de seguridad llamado retiro de espacio de nombres de repositorio popular y, en última instancia, controlar 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, la combinación del nombre de usuario y el nombre del repositorio se considera «retirada».

Si esta salvaguarda se eludiera trivialmente, podría permitir a los actores de amenazas crear nuevas cuentas con el mismo nombre de usuario y cargar repositorios maliciosos, lo que podría conducir 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 nombre de usuario para lograr el repojacking. Específicamente, implica los siguientes pasos:

  1. La víctima posee el espacio de nombres «victim_user/repo»
  2. La víctima cambia el nombre de «usuario_víctima» a «usuario_renombrado»
  3. El repositorio «victim_user/repo» ya está retirado
  4. Un actor de amenazas con el nombre de usuario «usuario_atacante» crea simultáneamente un repositorio llamado «repo» y cambia el nombre del nombre de usuario «usuario_atacante» a «usuario_víctima».

El último paso se logra mediante una solicitud API para la creación del repositorio y una intercepción de solicitud renombrada para el cambio de nombre de usuario. El desarrollo se produce casi nueve meses después de que GitHub parcheara una falla de derivación similar 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 nombre de usuario de GitHub subraya los riesgos persistentes asociados con el mecanismo de ‘retiro de espacio de nombres de repositorio popular'», dijo Rapoport.

Fuente y redacción: thehackernews.com

Compartir