Resumen
- Se ha descubierto un RCE en el servidor GitLab y se le ha asignado CVE-2022-2185
- El exploit requiere una cuenta válida, pero el comportamiento por defecto del servidor permite la creación de nuevas cuentas con la aprobación del administrador.
- Censys los usuarios pueden encontrar servidores GitLab con la siguiente consulta de búsquedaCensys
- Consulta nuestro panel de control de GitLab, que se actualiza cada 24 horas.
Introducción
El 1 de julio de 2022, se hizo público CVE-2022-2185, un problema crítico en el servidor de GitLab, que permite a un usuario autenticado crear una solicitud que resulta en la ejecución remota de código (RCE). Las versiones de GitLab afectadas son las siguientes:
- 14.0 (corregido en v14.10.5)
- 15.0 (corregido en v15.0.4)
- 15.1 (corregido en v15.1.1)
Es importante entender que para que este exploit tenga éxito, un atacante debe tener un inicio de sesión válido en el servicio GitLab. El servicio por defecto permite a los usuarios registrarse y crear una cuenta utilizando sus credenciales. Además, un administrador debe desactivar explícitamente la opción "Requerir aprobación del administrador para nuevos registros" para que el usuario pueda obtener una cuenta sin la aprobación previa de un administrador.
Aunque pueda parecer inverosímil que un atacante pueda engañar a un administrador para que apruebe dicha solicitud, es factible. Un usuario remoto puede aprovechar el ataque en sistemas en los que las credenciales han sido crackeadas, robadas, filtradas u obtenidas legalmente. Un usuario puede obtener acceso a nivel de shell al host subyacente que ejecuta el servicio GitLab si el ataque tiene éxito, permitiendo un movimiento más permisivo dentro de los recursos de la víctima.
Identificación de instancias de GitLab
Utilizando los mismos métodos para identificar las versiones de GitLab para CVE-2021-22205, determinamos que ciertos nombres de archivo encontrados en el cuerpo de la respuesta HTTP podrían estar asociados con versiones específicas de GitLab Server. En resumen, cada vez que se etiqueta una nueva compilación, junto con muchos otros eventos, el sistema de integración continua (CI) de GitLab pone en marcha un trabajo que compila activos estáticos. Este trabajo da lugar a que algunos archivos tengan una extensión de archivo única que puede asignar vagamente el software en ejecución a la versión original.
Por ejemplo, el archivo "public/assets/application.css" parece tener un nombre de archivo generado de forma única para cada versión menor del software, que incluye una cadena codificada ASCII-HEX de 64 bytes añadida al final del nombre del archivo.
En nuestro análisis de esta vulnerabilidad específica, hemos encontrado los siguientes nombres de archivo en el cuerpo de la respuesta HTTP que pueden asignarse a una versión mayor y menor concreta de GitLab Server:
Nombre de archivo (se encuentra en el cuerpo de la respuesta HTTP)
|
Versión mapeada |
application-90abf7746df5cb82bca9949de6f512de7cb10bec97d3f5103299a9ce38d5b159.css |
14.0.* |
application-5cd37ee959b5338b5fb48eafc6c7290ca1fa60e653292304102cc19a16cc25e4.css |
14.1.* |
application-4f233d907f30a050ca7e40fbd91742d444d28e50691c51b742714df8181bf4e7.css |
14.2.[0-5] |
application-57e83f1a3cf7c0fe3cf2357802306688dab60cf6a30d00e14e67826070db92de.css |
14.2.[6-7] |
application-a8bf3d1210afa873d9b9af583e944bdbf5ac7c8a63f6eccc3d6795802bd380d2.css |
14.3.[0-3] |
application-ba74062de4171df6109c4c96da1ebe2b538bb6cc7cd55867cbdfba44777700e1.css |
14.3.[4-6] |
application-50d9206410f00bb00cc8f95865ab291c718e7a026e7fdc1fc9db0480586c4bc9.css |
14.4.0 |
application-775f130d36e9eb14cb67c6a63551511b87f78944cebcf6cdddb78292030341df.css |
14.4.[1-5] |
application-1832611738f1e31dd00a8293bbf90fce9811b3eea5b21798a63890dbc51769c8.css |
14.5.[0-4] |
application-8b78708916f28aa9e54dacf9c9c08d720837ce78d8260c36c0f828612567d353.css |
14.6.[0-3] |
application-cfa6748598b5e507db0e53906a7639e2c197a53cb57da58b0a20ed087cc0b9d5.css |
14.7.[0-7] |
application-1d840f0c4634c8813d3056f26cbab7a685d544050360a611a9df0b42371f4d98.css |
14.8.[0-6] |
application-003236d7e2c5f1f035dc8b67026d7583ee198b568932acd8faeac18cec673dfa.css |
14.9.[0-4] |
application-739a920f5840de93f944ec86c5a181d0205f1d9e679a4df1b9bf5b0882ab848a.css |
14.10.* |
application-1062bbba2e9b04e360569154a8df8705a75d9e17de1a3a9acd5bd20f000fec8b.css |
15.0.[0-1] |
application-a743f974bacea01ccc609dcb79247598bd2896f64377ce4a9f9d0333ab7b274e.css |
15.0.[2-4] |
application-7d0792b17e1d2ccac7c6820dda1b54020b294006d7867b7d78a05060220a0213.css |
15.1.* |
Hay algunos solapamientos en lo que podemos identificar y en lo que es y no es vulnerable; por ejemplo, el archivo asociado a v14 .10. 1 (una versión vulnerable de GitLab) y v.14.10.5 (la versión corregida) tienen el mismo nombre de archivo. Este solapamiento también se da en el caso de las versiones v15.0 .2 y v15.0.3, que tienen el mismo nombre de archivo que la versión corregida v15.0.4. Por último, la versión 15.1.0 tiene el mismo nombre de archivo que la versión fija(v15.1.1).
En el momento de escribir esto (24 de julio de 2022), Censys ha observado 17.828 hosts con una versión asociada que pueden ser vulnerables a este ataque (excluyendo los hosts v14.10 debido al solapamiento de versiones). De esos hosts, sólo 6.759 tienen habilitada la creación de nuevas cuentas. Desafortunadamente, Censys no puede validar si estos hosts requieren la aprobación del administrador para la creación de nuevas cuentas. Sin embargo, dado que esta configuración es la predeterminada, existe una alta probabilidad de que se requiera aprobación.
País |
Anfitriones |
China |
3,646 |
Estados Unidos |
452 |
Corea del Sur |
447 |
Alemania |
391 |
Rusia |
280 |
Geográficamente, la mayoría de los hosts que ejecutan una versión coincidente de GitLab con la creación de cuentas habilitada se encuentran en China, con 3.646 hosts. Por detrás se sitúa Estados Unidos, con 452 hosts, seguido de cerca por Corea del Sur, con solo 447 hosts.
Para ayudar a la comunidad en general a monitorizar estas vulnerabilidades, Censys ha creado un panel interactivo público específico de GitLab que rastrea tanto CVE-2022-2185 como CVE-2021-22205, actualizado cada 24 horas. Con él, los usuarios pueden filtrar varios campos relacionados con GitLab (incluida la posibilidad de mostrar estadísticas sobre servidores GitLab con creación de cuenta abierta). Censys añadirá nuevas funciones y estadísticas en los próximos días.
Detalles de la vulnerabilidad
Para más detalles sobre la vulnerabilidad real, un investigador de Star Labs ha escrito un análisis muy extenso de este fallo en particular que hace referencia a parte del trabajo original realizado por un cazarrecompensas llamado Vakzz en Hackerone.
¿Qué hago al respecto?
- Actualiza a GitLab v14.10.5, v15.0.4 o v15.1.1.
- Censys Los clientes de ASM tienen ahora acceso a un nuevo riesgo que identifica los servicios de GitLab potencialmente vulnerables.
- Como mínimo, un administrador debería desactivar la función de creación de nuevas cuentas en la interfaz de administración -> Configuración -> General -> "Restricciones de registro" y desmarcar la opción "Registro activado".