In Go before 1.10.6 and 1.11.x before 1.11.3, the "go get" command is vulnerable to directory traversal when executed with the import path of a malicious Go package which contains curly braces (both '{' and '}' characters). 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). The attacker can cause an arbitrary filesystem write, which can lead to code execution.
The MITRE CVE dictionary describes this issue as:
Find out more about CVE-2018-16874 from the MITRE CVE dictionary dictionary and NIST NVD.
NOTE: The following CVSS v3 metrics and score provided are preliminary and subject to review.
CVSS3 Base Score | 6.8 |
---|---|
CVSS3 Base Metrics | CVSS:3.0/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N |
Attack Vector | Network |
Attack Complexity | High |
Privileges Required | None |
User Interaction | Required |
Scope | Unchanged |
Confidentiality | High |
Integrity Impact | High |
Availability Impact | None |
Platform | Package | State |
---|---|---|
Red Hat OpenStack Platform Operational Tools 9 | golang | Will not fix |
Red Hat Gluster Storage 3 | golang | Affected |
Red Hat Enterprise Linux OpenStack Platform 8.0 Operational Tools for RHEL 7 | golang | Will not fix |
Red Hat Enterprise Linux 7 | golang | Will not fix |
Red Hat Ceph Storage 3 | golang | Affected |
Red Hat Ceph Storage 2 | golang | Affected |