The go command may execute unexpected commands when operating in untrusted VCS repositories. This occurs when possibly dangerous VCS configuration is present in repositories. This can happen when a repository was fetched via one VCS (e.g. Git), but contains metadata for another VCS (e.g. Mercurial). Modules which are retrieved using the go command line, i.e. via go get, are not affected.
The product allows user input to control or influence paths or file names that are used in filesystem operations.
| Name | Vendor | Start Version | End Version |
|---|---|---|---|
| Go | Golang | * | 1.23.11 (excluding) |
| Go | Golang | 1.24.0 (including) | 1.24.5 (excluding) |
| Red Hat Enterprise Linux 10 | RedHat | golang-0:1.24.6-1.el10_0 | * |
| Red Hat Enterprise Linux 8 | RedHat | go-toolset:rhel8-8100020250813120739.a3795dee | * |
| Red Hat Enterprise Linux 8.8 Telecommunications Update Service | RedHat | go-toolset:rhel8-8080020250814081429.6b4b45d8 | * |
| Red Hat Enterprise Linux 8.8 Update Services for SAP Solutions | RedHat | go-toolset:rhel8-8080020250814081429.6b4b45d8 | * |
| Red Hat Enterprise Linux 9 | RedHat | golang-0:1.24.6-1.el9_6 | * |
| Red Hat Enterprise Linux 9.2 Update Services for SAP Solutions | RedHat | golang-0:1.19.13-18.el9_2 | * |
| Red Hat Enterprise Linux 9.4 Extended Update Support | RedHat | golang-0:1.21.13-10.el9_4 | * |
| Golang-1.10 | Ubuntu | esm-infra/xenial | * |
| Golang-1.13 | Ubuntu | esm-apps/xenial | * |
| Golang-1.18 | Ubuntu | esm-apps-legacy/xenial | * |
| Golang-1.18 | Ubuntu | esm-apps/bionic | * |
| Golang-1.18 | Ubuntu | esm-apps/focal | * |
| Golang-1.18 | Ubuntu | esm-apps/xenial | * |
| Golang-1.18 | Ubuntu | jammy | * |
| Golang-1.20 | Ubuntu | esm-apps/focal | * |
| Golang-1.20 | Ubuntu | esm-apps/jammy | * |
| Golang-1.20 | Ubuntu | jammy | * |
| Golang-1.21 | Ubuntu | esm-apps/focal | * |
| Golang-1.21 | Ubuntu | esm-apps/jammy | * |
| Golang-1.21 | Ubuntu | esm-apps/noble | * |
| Golang-1.21 | Ubuntu | jammy | * |
| Golang-1.21 | Ubuntu | noble | * |
| Golang-1.22 | Ubuntu | esm-apps/focal | * |
| Golang-1.22 | Ubuntu | esm-apps/jammy | * |
| Golang-1.22 | Ubuntu | jammy | * |
| Golang-1.22 | Ubuntu | noble | * |
| Golang-1.23 | Ubuntu | devel | * |
| Golang-1.23 | Ubuntu | esm-apps/jammy | * |
| Golang-1.23 | Ubuntu | esm-apps/noble | * |
| Golang-1.23 | Ubuntu | esm-apps/resolute | * |
| Golang-1.23 | Ubuntu | jammy | * |
| Golang-1.23 | Ubuntu | noble | * |
| Golang-1.23 | Ubuntu | plucky | * |
| Golang-1.23 | Ubuntu | questing | * |
| Golang-1.23 | Ubuntu | resolute | * |
| Golang-1.24 | Ubuntu | esm-apps/jammy | * |
| Golang-1.24 | Ubuntu | esm-apps/noble | * |
| Golang-1.24 | Ubuntu | jammy | * |
| Golang-1.24 | Ubuntu | noble | * |
| Golang-1.24 | Ubuntu | plucky | * |
| Golang-1.24 | Ubuntu | questing | * |
| Golang-1.6 | Ubuntu | esm-infra/xenial | * |
This could allow an attacker to access or modify system files or other files that are critical to the application. Path manipulation errors occur when the following two conditions are met:
For example, the program may give the attacker the ability to overwrite the specified file or run with a configuration controlled by the attacker.