### La vulnerabilidad en GitLab: Un acceso privilegiado a través de direcciones de correo electrónico
La ciberseguridad es un campo en constante evolución, donde cada día surgen nuevas amenazas que pueden comprometer la integridad de los sistemas y la información. Recientemente, un estudio publicado por Aikido Security ha puesto de manifiesto un grave problema en la plataforma de desarrollo GitLab, que puede permitir a actores maliciosos realizar ataques devastadores utilizando únicamente una dirección de correo electrónico. Esta situación no solo afecta a los usuarios de GitLab, sino que también plantea un riesgo significativo para cualquier organización que utilice esta plataforma para gestionar sus proyectos de software.
### Un acceso privilegiado a través de correos electrónicos
El estudio de Aikido Security revela que cada usuario de GitLab recibe una dirección de correo electrónico única y privada, asignada automáticamente por la plataforma. Esta dirección permite a los usuarios crear problemas (issues) en sus proyectos de software. Sin embargo, lo que muchos usuarios desconocen es que estas direcciones incluyen un token de acceso que no expira, lo que otorga privilegios amplios no solo en el proyecto específico en el que el usuario está trabajando, sino en todos los proyectos públicos y privados a los que tenga acceso. Si una de estas direcciones se expone públicamente, un atacante podría explotarla para llevar a cabo ataques de cadena de suministro, sin necesidad de acceder directamente a la cuenta del usuario.
El informe señala que "cualquier buzón de correo en Internet puede enviar un mensaje a esa dirección, y GitLab procesa el mensaje como si fuera el propietario del token". Por lo tanto, poseer la dirección de correo electrónico equivale a tener tanto la autenticación como la autorización necesarias para interactuar con los proyectos en GitLab.
### Riesgos subestimados por los usuarios
La investigación de Aikido sugiere que muchos usuarios de GitLab son probablemente ajenos a los riesgos asociados con estas direcciones, ya que se han encontrado numerosas direcciones expuestas intencionadamente en Internet. Joe Leon, investigador de Aikido, destaca que lo que comenzó como una función sencilla para crear problemas ha evolucionado a lo largo de los años para incluir la capacidad de enviar solicitudes de fusión (merge requests) y archivos de parches, todos con acceso privilegiado. Aunque estas capacidades están documentadas, Leon sostiene que los riesgos no están adecuadamente comunicados, especialmente en la interfaz de usuario de GitLab.
La interfaz de usuario de GitLab describe la dirección de correo electrónico como una herramienta para añadir elementos de trabajo, como problemas, a un proyecto específico, y afirma que "no puede usarse para acceder a ningún otro dato". Sin embargo, esto es incorrecto, según Aikido. Leon explica que "la credencial que se incrusta en la dirección puede ser reutilizada en todos los proyectos públicos y privados".
### Detalles técnicos de la vulnerabilidad
Leon encontró que las direcciones de correo electrónico contienen una cadena de prefijo llamada glimt- (GitLab Incoming Mail Token), y que el token de cada usuario es el mismo para todos los proyectos a los que tiene acceso. Si una dirección de correo electrónico de un proyecto público se expone, un atacante podría modificar el identificador del proyecto y la ruta del proyecto en el correo electrónico para acceder a otros proyectos privados. Aikido señala que, aunque los identificadores son adivinables, se requiere que se filtre un nombre de proyecto para que un atacante pueda aprovechar esta vulnerabilidad.
Además, Leon descubrió que podía eludir las restricciones de dirección IP con las direcciones de correo electrónico de GitLab. Al restringir un proyecto privado a una dirección IP aleatoria que no poseía, GitLab le impidió clonar el proyecto o acceder a él a través de un navegador web. Sin embargo, los mensajes de correo electrónico con solicitudes de fusión lograron eludir esta barrera de seguridad.
### Un panorama preocupante
Durante su investigación, Leon realizó una búsqueda no exhaustiva en Internet que duró unas pocas horas y encontró fácilmente una docena de direcciones de correo electrónico entrantes que habían sido expuestas intencionadamente en archivos de ReadMe y de soporte. Algunas de las direcciones expuestas pertenecen a proyectos de código abierto populares. Leon expresó su preocupación: "Estoy seguro de que hay muchas más por ahí. Esto fue solo la fruta al alcance de la mano".
Un aspecto alarmante de esta situación es que podría ser difícil determinar si un atacante ha abusado de una dirección de correo electrónico entrante para, por ejemplo, inyectar código malicioso en un proyecto a través de una solicitud de fusión. "No es obvio que se haya hecho a través de un correo electrónico", añade Leon. "Necesitarías acceso a los servidores de GitLab, suponiendo que recopilen estos datos".
### Respuesta de GitLab y medidas correctivas
Aikido reportó sus hallazgos a GitLab a través de HackerOne en mayo, pero GitLab cerró el informe como un comportamiento intencionado. Posteriormente, Aikido siguió en junio con un problema confidencial en el repositorio de GitLab. Al final, GitLab modificó su interfaz de usuario para reflejar que la dirección de correo electrónico puede utilizarse para solicitudes de fusión y eliminó la afirmación de que "no puede usarse para acceder a ningún otro dato". Además, actualizó su documentación para informar a los usuarios de que las direcciones de correo electrónico no están sujetas a restricciones de dirección IP.
Leon sugiere que la mejor mitigación sería exigir que la dirección del remitente coincida con la del cuenta de GitLab. Esto representaría un obstáculo significativo para los atacantes, ya que necesitarían comprometer la cuenta de correo electrónico del usuario en lugar de depender únicamente de la dirección de GitLab. "Eso elimina prácticamente la mayor parte del problema aquí", dice.
GitLab está considerando esta modificación, aunque hasta el momento no ha ofrecido ningún comentario oficial sobre el asunto.
Mientras tanto, Aikido recomienda que las organizaciones reduzcan su superficie de ataque rotando de manera proactiva los tokens de acceso en sus direcciones de correo electrónico de GitLab y escaneando estas direcciones en sus entornos de desarrollo y repositorios como si fueran otros secretos. Esta medida podría ayudar a mitigar el riesgo de explotación de estas vulnerabilidades y proteger mejor la integridad de los proyectos de software.
