ASA-2018-00074 – Go: Execução remota de código durante “go get -u”


For the English version of this alert, click here.

Allele Security Alert

ASA-2018-00074

Identificador(es)

ASA-2018-00074, CVE-2018-16873

Título

Execução remota de código durante “go get -u”

Fabricante(s)

The Go Authors

Produto(s)

Go

Versão(ões) afetada(s)

Go anterior às versões 1.11.3 e 1.10.6

Versão(ões) corrigida(s)

Go 1.11.3
Go 1.10.6

Prova de conceito

Desconhecido

Descrição

O comando “go get” é vulnerável à execução remota de código quando executado com a flag -u e o caminho de importação de um pacote Go malicioso, ou um pacote que o importe direta ou indiretamente. Especificamente, é apenas vulnerável no modo GOPATH, mas não no modo de módulo. Usando domínios personalizados, é possível organizar as coisas para que um repositório Git seja clonado em uma pasta chamada .git usando um caminho de importação que termina com “/.git”. Se a raiz do repositório Git contém um arquivo HEAD, um arquivo de configuração, um diretório de objetos, um diretório refs, com algum trabalho para garantir a ordenação adequada das operações, “go get -u” pode ser induzido a considerar o diretório pai como um repositório root e executando comandos do Git nele. Isso irá usar o arquivo de configuração na raiz do repositório Git original para sua configuração, e se esse arquivo de configuração contiver comandos maliciosos, eles serão executados no sistema através do comando “go get -u”.

Detalhes técnicos

Desconhecido

Créditos

Etienne Stalmans (Heroku platform security team)

Referência(s)

Go security releases 1.11.3 and 1.10.6
https://seclists.org/oss-sec/2018/q4/254

cmd/go: remote command execution during “go get -u” #29230
https://github.com/golang/go/issues/29230

[release-branch.go1.11-security] cmd/go: reject ‘get’ of paths containing leading dots or unsupported characters
https://github.com/golang/go/commit/8954addb3294a5e664a9833354bafa58f163fe8f

[release-branch.go1.11-security] cmd/go/internal/get: reject Windows shortnames as path components
https://github.com/golang/go/commit/5aedc8af94c0a8ffc58cbd09993192dea9b238db

[release-branch.go1.10-security] cmd/go: reject ‘get’ of paths containing leading dots or unsupported characters
https://github.com/golang/go/commit/90d609ba6156299642d08afc06d85ab770a03972

[release-branch.go1.10-security] cmd/go/internal/get: reject Windows shortnames as path components
https://github.com/golang/go/commit/7ef6ee2c5727f0d11206b4d1866c18e6ab4785be

CVE-2018-16873
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-16873

CVE-2018-16873
https://nvd.nist.gov/vuln/detail/CVE-2018-16873

Se encontrou algum erro neste alerta ou deseja uma análise compreensiva, entre em contato.

Última modificação: 11 fevereiro 2019

Não somos responsáveis por qualquer perda de dados, corrupção de dispositivos ou qualquer outro tipo de problema devido ao uso de qualquer informação mencionada em nossos alertas de segurança.