GitLab advierte de una vulnerabilidad en el secuestro de cuentas con cero clics

GitLab ha publicado actualizaciones de seguridad para las ediciones Community y Enterprise con el fin de corregir dos vulnerabilidades críticas, una de las cuales permite el secuestro de cuentas sin interacción del usuario.

El editor recomienda encarecidamente que se actualicen cuanto antes todas las versiones vulnerables de la plataforma DevSecOps (actualización manual necesaria para las instalaciones autoalojadas) y advierte de que si «no se menciona ningún tipo de despliegue específico (ómnibus, código fuente, gráfico de barras, etc.) de un producto, significa que todos los tipos están afectados».

Detalles de la vulnerabilidad

El problema de seguridad más crítico que GitLab ha corregido tiene la máxima puntuación de gravedad (10 sobre 10) y se registra como CVE-2023-7028. La explotación exitosa no requiere ninguna interacción.

Se trata de un problema de autenticación que permite enviar solicitudes de restablecimiento de contraseña a direcciones de correo electrónico arbitrarias y no verificadas, lo que permite hacerse con el control de una cuenta. Si la autenticación de dos factores (2FA) está activa, es posible restablecer la contraseña, pero el segundo factor de autenticación sigue siendo necesario para iniciar sesión correctamente.

El secuestro de una cuenta de GitLab puede tener un impacto significativo en una organización, ya que la plataforma se utiliza generalmente para alojar código propietario, claves API y otros datos sensibles.

Otro riesgo son los ataques a la cadena de suministro, en los que los atacantes pueden poner en peligro los repositorios insertando código malicioso en entornos activos cuando GitLab se utiliza para CI/CD (integración continua/despliegue continuo).

El problema fue descubierto y comunicado a GitLab por el investigador de seguridad ‘Asterion’ a través de la plataforma de recompensas por fallos HackerOne y se introdujo el 1 de mayo de 2023, con la versión 16.1.0.

Las versiones afectadas son las siguientes:

  • 16.1 antes de 16.1.5
  • 16.2 antes de 16.2.8
  • 16.3 antes de 16.3.6
  • 16.4 antes de 16.4.4
  • 16.5 antes de 16.5.6
  • 16.6 antes de 16.6.4
  • 16.7 antes de 16.7.2

El fallo se ha corregido en las versiones 16.7.2, 16.5.6 y 16.6.4 de GitLab, y también se ha informado de la corrección en las versiones 16.1.6, 16.2.9 y 16.3.7.

GitLab dice que no ha detectado ningún caso de explotación activa de CVE-2023-7028, pero ha compartido los siguientes indicios de compromiso con los defensores:

  • Compruebe en gitlab-rails/production_json.log si hay peticiones HTTP a la ruta /users/password con params.value.email consistente en una matriz JSON con varias direcciones de correo electrónico.
  • Comprueba en gitlab-rails/audit_json.log si hay entradas con meta.caller.id de PasswordsController#create y target_details que consistan en una matriz JSON con varias direcciones de correo electrónico.

El segundo problema crítico se identifica como CVE-2023-5356 y tiene una puntuación de gravedad de 9,6 sobre 10. Un atacante podría aprovecharlo para abusar de las integraciones Slack/Mattermost con el fin de ejecutar comandos de barra como otro usuario.

En Mattermost, los comandos slash permiten integrar aplicaciones externas en el espacio de trabajo y en Slack, actúan como atajos para invocar aplicaciones en el cuadro de composición de mesasge.

Las otras vulnerabilidades corregidas por GitLab en la versión 16.7.2 son las siguientes:

  1. CVE-2023-4812 : Vulnerabilidad de alta gravedad en GitLab 15.3 y posteriores, que permite saltarse la aprobación de CODEOWNERS realizando cambios en una solicitud de fusión ya aprobada.
  2. CVE-2023-6955: Control de acceso incorrecto para espacios de trabajo existentes en GitLab antes de la versión 16.7.2, permitiendo a los atacantes crear un espacio de trabajo en un grupo asociado con un agente en otro grupo.
  3. CVE-2023-2030: Validación de firmas de commit defectuosa que afecta a las versiones 12.2 y posteriores de GitLab CE/EE, permitiendo modificar los metadatos de commits firmados debido a una validación de firmas incorrecta.

Para obtener instrucciones y recursos oficiales de actualización, visite la página de actualización de GitLab. Para Gitlab Runner, visite esta página web.