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)

Google

Produto(s)

Go

Versão(ões) afetada(s)

Go anterior a 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: 15 de dezembro de 2018