CVE-2018-16873
published 2018-12-14CVE-2018-16873: In Go before 1.10.6 and 1.11.x before 1.11.3, the "go get" command is vulnerable to remote code execution when executed with the -u flag and the import path of…
PriorityP266high8.1CVSS 3.1
AVNACHPRNUINSUCHIHAH
EPSS
66.25%
99.2th percentile
In Go before 1.10.6 and 1.11.x before 1.11.3, the "go get" command is vulnerable to remote code execution when executed with the -u flag and the import path of a malicious Go package, or a package that imports it directly or indirectly. Specifically, it is only vulnerable in GOPATH mode, but not in module mode (the distinction is documented at https://golang.org/cmd/go/#hdr-Module_aware_go_get). Using custom domains, it's possible to arrange things so that a Git repository is cloned to a folder named ".git" by using a vanity import path that ends with "/.git". If the Git repository root contains a "HEAD" file, a "config" file, an "objects" directory, a "refs" directory, with some work to ensure the proper ordering of operations, "go get -u" can be tricked into considering the parent directory as a repository root, and running Git commands on it. That will use the "config" file in the original Git repository root for its configuration, and if that config file contains malicious commands, they will execute on the system running "go get -u".
Affected
8 ranges
| Vendor | Product | Version range | Fixed in |
|---|---|---|---|
| debian | debian_linux | — | — |
| golang | go | < 1.10.6 | 1.10.6 |
| golang | go | >= 1.11.0 < 1.11.3 | 1.11.3 |
| opensuse | backports_sle | — | — |
| opensuse | leap | — | — |
| opensuse | leap | — | — |
| opensuse | leap | — | — |
| suse | linux_enterprise_server | — | — |
Detection & IOCsextracted from sources · hover to see the quote
- →Flag exploitation: the vulnerability is only triggered when 'go get' is invoked with the -u flag; monitor or restrict use of 'go get -u' in CI/CD pipelines and build environments. ↗
- →GOPATH mode only: exploitation requires GOPATH mode; environments running in module mode are not vulnerable. Verify build mode in affected pipelines. ↗
- →Vanity import path ending with '/.git': detect or block import paths that terminate with '/.git' as these are used to clone a repo into a folder named '.git', enabling the parent-directory confusion. ↗
- →Malicious Git config execution: the attack payload is delivered via a malicious 'config' file in the cloned Git repository root; inspect Git config files in GOPATH for unexpected hook or command entries. ↗
- ·Only Go versions before 1.10.6 and 1.11.x before 1.11.3 are vulnerable; upgrade to 1.10.6+ or 1.11.3+ to remediate. ↗
- ·Module mode is NOT affected; only GOPATH mode is exploitable. Detection and mitigation efforts should focus on GOPATH-mode build environments. ↗
CVSS provenance
nvdv3.18.1HIGHCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
nvdv3.07.5HIGHCVSS:3.0/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H
nvdv2.06.8MEDIUMAV:N/AC:M/Au:N/C:P/I:P/A:P
osv8.1HIGH
vendor_redhat8.1HIGH
Stop checking back — get the weekly exploitation signal.
Every Monday: what got weaponized or added to CISA KEV in the last seven days — each CVE cross-linked to its PoC, Nuclei template, and detection rule. Free, one email a week, unsubscribe in one click.
Red Hat
golang: "go get" command vulnerable to RCE via import of malicious package
vendor_redhat·2018-12-13·CVSS 8.1
CVE-2018-16873 [HIGH] CWE-20 golang: "go get" command vulnerable to RCE via import of malicious package
golang: "go get" command vulnerable to RCE via import of malicious package
In Go before 1.10.6 and 1.11.x before 1.11.3, the "go get" command is vulnerable to remote code execution when executed with the -u flag and the import path of a malicious Go package, or a package that imports it directly or indirectly. Specifically, it is only vulnerable in GOPATH mode, but not in module mode (the distinction is documented at https://golang.org/cmd/go/#hdr-Module_aware_go_get). Using custom domains, it's possible to arrange things so that a Git repository is cloned to a folder named ".git" by using a vanity import path that ends with "/.git". If the Git repository root contains a "HEAD" file, a "config" file, an "objects" directory, a "refs" directory, with some work to ensure the proper ordering
OSV
Remote command execution via "go get" with "-u" flag in cmd/go
osv·2022-08-04
CVE-2018-16873 Remote command execution via "go get" with "-u" flag in cmd/go
Remote command execution via "go get" with "-u" flag in cmd/go
The "go get" command is vulnerable to remote code execution when executed with the -u flag and the import path of a malicious Go package, or a package that imports it directly or indirectly.
Specifically, it is only vulnerable in GOPATH mode, but not in module mode (the distinction is documented at https://golang.org/cmd/go/#hdr-Module_aware_go_get).
Using custom domains, it's possible to arrange things so that a Git repository is cloned to a folder named ".git" by using a vanity import path that ends with "/.git". If the Git repository root contains a "HEAD" file, a "config" file, an "objects" directory, a "refs" directory, with some work to ensure the proper ordering of operations, "go get -u" can be tricked into consideri
GHSA
GHSA-q6pp-3q54-qw37: In Go before 1
ghsa_unreviewed·2022-05-13
CVE-2018-16873 [HIGH] CWE-20 GHSA-q6pp-3q54-qw37: In Go before 1
In Go before 1.10.6 and 1.11.x before 1.11.3, the "go get" command is vulnerable to remote code execution when executed with the -u flag and the import path of a malicious Go package, or a package that imports it directly or indirectly. Specifically, it is only vulnerable in GOPATH mode, but not in module mode (the distinction is documented at https://golang.org/cmd/go/#hdr-Module_aware_go_get). Using custom domains, it's possible to arrange things so that a Git repository is cloned to a folder named ".git" by using a vanity import path that ends with "/.git". If the Git repository root contains a "HEAD" file, a "config" file, an "objects" directory, a "refs" directory, with some work to ensure the proper ordering of operations, "go get -u" can be tricked into considering the parent direct
OSV
CVE-2018-16873: In Go before 1
osv·2018-12-14·CVSS 8.1
CVE-2018-16873 [HIGH] CVE-2018-16873: In Go before 1
In Go before 1.10.6 and 1.11.x before 1.11.3, the "go get" command is vulnerable to remote code execution when executed with the -u flag and the import path of a malicious Go package, or a package that imports it directly or indirectly. Specifically, it is only vulnerable in GOPATH mode, but not in module mode (the distinction is documented at https://golang.org/cmd/go/#hdr-Module_aware_go_get). Using custom domains, it's possible to arrange things so that a Git repository is cloned to a folder named ".git" by using a vanity import path that ends with "/.git". If the Git repository root contains a "HEAD" file, a "config" file, an "objects" directory, a "refs" directory, with some work to ensure the proper ordering of operations, "go get -u" can be tricked into considering the parent direct
No detection rules found.
No public exploits indexed.
Bugzilla
CVE-2018-16873 CVE-2018-16874 CVE-2018-16875 golang: various flaws [epel-all]
bugzilla·2019-01-08·CVSS 8.1
CVE-2018-16873 [HIGH] CVE-2018-16873 CVE-2018-16874 CVE-2018-16875 golang: various flaws [epel-all]
CVE-2018-16873 CVE-2018-16874 CVE-2018-16875 golang: various flaws [epel-all]
This is an automatically created tracking bug! It was created to ensure
that one or more security vulnerabilities are fixed in affected versions
of epel-all.
For comments that are specific to the vulnerability please use bugs filed
against the "Security Response" product referenced in the "Blocks" field.
For more information see:
http://fedoraproject.org/wiki/Security/TrackingBugs
When submitting as an update, use the fedpkg template provided in the next
comment(s). This will include the bug IDs of this tracking bug as well as
the relevant top-level CVE bugs.
Please also mention the CVE IDs being fixed in the RPM changelog and the
fedpkg commit message.
NOTE: this issue affects multiple supported versions o
Bugzilla
CVE-2018-16873 CVE-2018-16874 CVE-2018-16875 golang:1.10/golang: various flaws [fedora-all]
bugzilla·2019-01-04·CVSS 8.1
CVE-2018-16873 [HIGH] CVE-2018-16873 CVE-2018-16874 CVE-2018-16875 golang:1.10/golang: various flaws [fedora-all]
CVE-2018-16873 CVE-2018-16874 CVE-2018-16875 golang:1.10/golang: various flaws [fedora-all]
This is an automatically created tracking bug! It was created to ensure
that one or more security vulnerabilities are fixed in affected versions
of fedora-29.
For comments that are specific to the vulnerability please use bugs filed
against the "Security Response" product referenced in the "Blocks" field.
For more information see:
http://fedoraproject.org/wiki/Security/TrackingBugs
When submitting as an update, use the fedpkg template provided in the next
comment(s). This will include the bug IDs of this tracking bug as well as
the relevant top-level CVE bugs.
Please also mention the CVE IDs being fixed in the RPM changelog and the
fedpkg commit message.
Discussion:
Use the following template
Bugzilla
CVE-2018-16873 golang: "go get" command vulnerable to RCE via import of malicious package [fedora-all]
bugzilla·2018-12-14·CVSS 8.1
CVE-2018-16873 [HIGH] CVE-2018-16873 golang: "go get" command vulnerable to RCE via import of malicious package [fedora-all]
CVE-2018-16873 golang: "go get" command vulnerable to RCE via import of malicious package [fedora-all]
This is an automatically created tracking bug! It was created to ensure
that one or more security vulnerabilities are fixed in affected versions
of fedora-all.
For comments that are specific to the vulnerability please use bugs filed
against the "Security Response" product referenced in the "Blocks" field.
For more information see:
http://fedoraproject.org/wiki/Security/TrackingBugs
When submitting as an update, use the fedpkg template provided in the next
comment(s). This will include the bug IDs of this tracking bug as well as
the relevant top-level CVE bugs.
Please also mention the CVE IDs being fixed in the RPM changelog and the
fedpkg commit message.
NOTE: this issue affects mu
Bugzilla
CVE-2018-16873 golang: "go get" command vulnerable to RCE via import of malicious package
bugzilla·2018-12-10·CVSS 8.1
CVE-2018-16873 [HIGH] CVE-2018-16873 golang: "go get" command vulnerable to RCE via import of malicious package
CVE-2018-16873 golang: "go get" command vulnerable to RCE via import of malicious package
Go before versions 1.10.6 and 1.11.3 is vulnerable to remote code execution.
Discussion:
Pre-announcement:
https://groups.google.com/forum/#!msg/golang-announce/D4sE5tGvhe8/2_RCSJ3yBQAJ
---
In Go before 1.10.6 and 1.11.x before 1.11.3, the "go get" command is vulnerable to remote code execution when executed with the -u flag and the import path of a malicious Go package, or a package that imports it directly or indirectly. Specifically, it is only vulnerable in GOPATH mode, but not in module mode (the distinction is documented at https://golang.org/cmd/go/#hdr-Module_aware_go_get). Using custom domains, it’s possible to arrange things so that a Git repository is cloned to a folder named ".git" b
http://lists.opensuse.org/opensuse-security-announce/2019-03/msg00044.htmlhttp://lists.opensuse.org/opensuse-security-announce/2019-05/msg00060.htmlhttp://lists.opensuse.org/opensuse-security-announce/2019-06/msg00011.htmlhttp://lists.opensuse.org/opensuse-security-announce/2019-06/msg00015.htmlhttp://lists.opensuse.org/opensuse-security-announce/2019-07/msg00010.htmlhttp://lists.opensuse.org/opensuse-security-announce/2020-04/msg00041.htmlhttp://www.securityfocus.com/bid/106226https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2018-16873https://groups.google.com/forum/?pli=1#%21topic/golang-announce/Kw31K8G7Fi0https://lists.debian.org/debian-lts-announce/2021/03/msg00014.htmlhttps://lists.debian.org/debian-lts-announce/2021/03/msg00015.htmlhttps://security.gentoo.org/glsa/201812-09http://lists.opensuse.org/opensuse-security-announce/2019-03/msg00044.htmlhttp://lists.opensuse.org/opensuse-security-announce/2019-05/msg00060.htmlhttp://lists.opensuse.org/opensuse-security-announce/2019-06/msg00011.htmlhttp://lists.opensuse.org/opensuse-security-announce/2019-06/msg00015.htmlhttp://lists.opensuse.org/opensuse-security-announce/2019-07/msg00010.htmlhttp://lists.opensuse.org/opensuse-security-announce/2020-04/msg00041.htmlhttp://www.securityfocus.com/bid/106226https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2018-16873https://groups.google.com/forum/?pli=1#%21topic/golang-announce/Kw31K8G7Fi0https://lists.debian.org/debian-lts-announce/2021/03/msg00014.htmlhttps://lists.debian.org/debian-lts-announce/2021/03/msg00015.htmlhttps://security.gentoo.org/glsa/201812-09
2018-12-14
Published