Cuatro vulnerabilidades de seguridad sin parches, incluidas tres críticas, se han revelado en el servicio Git de código abierto y autoalojado Gogs. Estas fallas podrían permitir a un atacante autenticado comprometer instancias vulnerables, robar o eliminar código fuente e incluso instalar puertas traseras.
Las vulnerabilidades, identificadas por los investigadores de SonarSource Thomas Chauchefoin y Paul Gerste, son:
- CVE-2024-39930 (puntuación CVSS: 9.9): Inyección de argumentos en el servidor SSH integrado.
- CVE-2024-39931 (puntuación CVSS: 9.9): Eliminación de archivos internos.
- CVE-2024-39932 (puntuación CVSS: 9.9): Inyección de argumentos durante la vista previa de los cambios.
- CVE-2024-39933 (puntuación CVSS: 7.7): Inyección de argumentos al etiquetar nuevas versiones.
La explotación exitosa de las tres primeras vulnerabilidades podría permitir a un atacante ejecutar comandos arbitrarios en el servidor Gogs, mientras que la cuarta falla permite a los atacantes leer archivos arbitrarios, incluido el código fuente y los secretos de configuración.
En resumen, estas vulnerabilidades permiten a un actor malicioso leer, modificar y eliminar el código fuente de una instancia, dirigirse a hosts internos accesibles desde el servidor Gogs y hacerse pasar por otros usuarios para obtener privilegios adicionales. Sin embargo, todas las fallas requieren que el atacante esté autenticado. Además, la explotación de CVE-2024-39930 requiere que el servidor SSH integrado esté habilitado, que la versión del binario
1 | env |
sea vulnerable y que el atacante posea una clave privada SSH válida.
Los investigadores señalaron que, si la instancia de Gogs tiene habilitado el registro, el atacante puede crear una cuenta y registrar su clave SSH. De lo contrario, tendría que comprometer otra cuenta o robar la clave privada SSH de un usuario. Las instancias de Gogs que se ejecutan en Windows y la imagen de Docker no son vulnerables. Sin embargo, las que se ejecutan en Debian y Ubuntu sí lo son debido a que el binario
1 | env |
admite la opción «–split-string».
Según Shodan, alrededor de 7,300 instancias de Gogs son accesibles públicamente a través de Internet, con casi el 60% de ellas en China, seguidas de Estados Unidos, Alemania, Rusia y Hong Kong. Actualmente, no se sabe cuántos de estos servidores expuestos son vulnerables. SonarSource informó que los mantenedores del proyecto no implementaron correcciones y dejaron de comunicarse después de aceptar su informe inicial el 28 de abril de 2023.
En ausencia de una actualización, se recomienda a los usuarios deshabilitar el servidor SSH incorporado, desactivar el registro de usuarios para evitar la explotación masiva y considerar cambiar a Gitea. SonarSource también ha lanzado un parche que los usuarios pueden aplicar, aunque no ha sido probado exhaustivamente.
Esta revelación coincide con el descubrimiento de Aqua Security sobre la exposición permanente de información confidencial en sistemas de gestión de código fuente basados en Git. Conocidos como «secretos fantasmas,» estos problemas se deben a que ciertos secretos permanecen accesibles incluso después de ser eliminados, destacando las limitaciones de los métodos de escaneo convencionales.
Los investigadores de seguridad Yakir Kadkoda e Ilay Goldman explicaron que «las confirmaciones siguen siendo accesibles a través de ‘vistas de caché’ en el SCM. Esto significa que incluso si se elimina una confirmación que contiene un secreto de las versiones clonada y reflejada de su repositorio, aún se puede acceder a ella si alguien conoce el hash de confirmación.»
Fuente: The Hacker News