Vulnerabilidad en Go (CVE-2018-16873)
Gravedad CVSS v3.1:
ALTA
Tipo:
CWE-20
Validación incorrecta de entrada
Fecha de publicación:
14/12/2018
Última modificación:
07/11/2023
Descripción
En Go en versiones anteriores a la 1.10.6 y versiones 1.11.x anteriores a la 1.11.3, el comando "go get" es vulnerable a la ejecución remota de código cuando se ejecuta con la marca -u y la ruta de importación de un paquete Go malicioso, o un paquete que lo importa directa o indirectamente. Específicamente, solo es vulnerable en modo GOPATH, pero no en modo módulo (la diferencia está documentada en https://golang.org/cmd/go/#hdr-Module_aware_go_get). Mediante el uso de dominios personalizados, es posible organizar todo para que un repositorio de Git se clone a una carpeta llamada ".git" mediante una ruta de importación vanity que termina en "/.git". Si el root del repositorio Git contiene un archivo "HEAD", un archivo "config", un directorio "objects" y un directorio "refs", con algo de trabajo para asegurar el orden correcto de las operaciones, se puede engañar a "go get -u" para que considere que el directorio padre es un root del repositorio y ejecute comandos Git en él. Eso empleará el archivo "config" en el root del repositorio Git original, y si ese archivo de configuración contiene comandos maliciosos, se ejecutarán en el sistema con "go get -u".
Impacto
Puntuación base 3.x
8.10
Gravedad 3.x
ALTA
Puntuación base 2.0
6.80
Gravedad 2.0
MEDIA
Productos y versiones vulnerables
CPE | Desde | Hasta |
---|---|---|
cpe:2.3:a:golang:go:*:*:*:*:*:*:*:* | 1.10.6 (excluyendo) | |
cpe:2.3:a:golang:go:*:*:*:*:*:*:*:* | 1.11.0 (incluyendo) | 1.11.3 (excluyendo) |
cpe:2.3:a:opensuse:backports_sle:15.0:-:*:*:*:*:*:* | ||
cpe:2.3:o:opensuse:leap:15.0:*:*:*:*:*:*:* | ||
cpe:2.3:o:opensuse:leap:15.1:*:*:*:*:*:*:* | ||
cpe:2.3:o:opensuse:leap:42.3:*:*:*:*:*:*:* | ||
cpe:2.3:o:suse:linux_enterprise_server:12:-:*:*:*:*:*:* | ||
cpe:2.3:o:debian:debian_linux:9.0:*:*:*:*:*:*:* |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página
Referencias a soluciones, herramientas e información
- http://lists.opensuse.org/opensuse-security-announce/2019-03/msg00044.html
- http://lists.opensuse.org/opensuse-security-announce/2019-05/msg00060.html
- http://lists.opensuse.org/opensuse-security-announce/2019-06/msg00011.html
- http://lists.opensuse.org/opensuse-security-announce/2019-06/msg00015.html
- http://lists.opensuse.org/opensuse-security-announce/2019-07/msg00010.html
- http://lists.opensuse.org/opensuse-security-announce/2020-04/msg00041.html
- http://www.securityfocus.com/bid/106226
- https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2018-16873
- https://groups.google.com/forum/?pli=1#%21topic/golang-announce/Kw31K8G7Fi0
- https://lists.debian.org/debian-lts-announce/2021/03/msg00014.html
- https://lists.debian.org/debian-lts-announce/2021/03/msg00015.html
- https://security.gentoo.org/glsa/201812-09