CVE-2024-3817
Critical · 9.8CVSS
9.8
EPSS
1.3%
Published
Apr 17, 2024
CISA due date
—
Cloudanix analysis
A flaw in a popular code-downloading library lets attackers run their own commands on systems that use it, potentially giving them full control.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Remote Code Execution
- Component
- Library
- Class
- Command Injection
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Argument injection into Git commands executed by go-getter when discovering remote branches, enabling arbitrary command execution on the host.
Why it matters to the business
Full system compromise is possible through unauthenticated remote attackers, risking data theft, ransomware deployment, or service disruption in any application or supply chain depending on this library.
How an attack unfolds
An attacker supplies crafted input containing Git argument separators or options that are passed unsafely to the Git binary during remote branch enumeration; the injected arguments cause Git to execute attacker-controlled commands instead of the intended branch lookup.
How to fix it
Upgrade hashicorp/go-getter (GIT) to commit 268c11cae8cf0d9374783e06572679796abe9ce9 or later; the go-getter/v2 package is unaffected.
How to confirm the fix worked
Confirm the go-getter import path resolves to the fixed commit via go list -m or equivalent dependency tooling; re-run any unit tests that exercise Git remote discovery.
Typical attack path
- Locate an application or build process that imports vulnerable go-getter and triggers Git-based remote discovery
- Craft malicious input containing argument injection payloads targeting the branch discovery code path
- Submit the input via network request, configuration, or dependency URL
- Trigger the vulnerable code path so the injected arguments reach the Git executable
- Achieve arbitrary command execution with the privileges of the go-getter process
How to detect it
Review application and build logs for Git invocations containing unexpected flags, semicolons, or redirection characters; inspect process creation events around go-getter usage for anomalous child processes.
What your security team should do
- Immediately update all direct and transitive dependencies on hashicorp/go-getter to the fixed commit
- Audit build pipelines and applications that perform Git operations via go-getter for exposure
- Add dependency pinning and automated scanning to prevent future vulnerable versions
- Monitor process execution logs for unexpected Git arguments or child processes spawned during branch discovery
The record
HashiCorp’s go-getter library is vulnerable to argument injection when executing Git to discover remote branches. This vulnerability does not affect the go-getter/v2 branch and package.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Go | github.com/hashicorp/go-getter | 1.5.9 | 1.7.4 |
| Chainguard | conftest | 0 | 0.52.0-r0 |
| Chainguard | conftest-fips | 0 | 0.52.0-r0 |
| Chainguard | k9s | 0 | 0.32.4-r3 |
| Chainguard | kubescape | 0 | 3.0.9-r0 |
| Chainguard | opentofu | 0 | 1.7.0-r0 |
| Chainguard | opentofu-compat | 0 | 1.7.0-r0 |
| Chainguard | opentofu-local-provider-config | 0 | 1.7.0-r0 |
| Chainguard | terraform | 0 | 1.5.7-r8 |
| Chainguard | terraform-compat | 0 | 1.5.7-r8 |
| Chainguard | terraform-fips-1.5 | 0 | 1.5.7-r9 |
| Chainguard | terraform-fips-1.5-compat | 0 | 1.5.7-r9 |
| Chainguard | terraform-fips-1.5-local-provider-config | 0 | 1.5.7-r9 |
| Chainguard | terraform-local-provider-config | 0 | 1.5.7-r8 |
| Chainguard | tflint | 0 | 0.51.0-r0 |
| Chainguard | tflint-compat | 0 | 0.51.0-r0 |
| Chainguard | tfsec | 0 | 1.28.5-r3 |
| Chainguard | zarf | 0 | 0.33.1-r1 |
| Chainguard | zot | 0 | 2.0.4-r0 |
| Debian:11 | golang-github-hashicorp-go-getter | 0 | No fix |
| Debian:12 | golang-github-hashicorp-go-getter | 0 | No fix |
| Debian:13 | golang-github-hashicorp-go-getter | 0 | No fix |
| SUSE:Package Hub 15 SP6 | trivy | 0 | 0.58.2-bp156.2.6.1 |
| Ubuntu:18.04:LTS | golang-github-hashicorp-go-getter | 0 | No fix |
| Ubuntu:20.04:LTS | golang-github-hashicorp-go-getter | 0 | No fix |
| Ubuntu:20.04:LTS | golang-github-jesseduffield-go-getter | 0 | No fix |
| Ubuntu:22.04:LTS | golang-github-hashicorp-go-getter | 0 | No fix |
| Ubuntu:22.04:LTS | golang-github-jesseduffield-go-getter | 0 | No fix |
| Ubuntu:24.04:LTS | golang-github-hashicorp-go-getter | 0 | No fix |
| Ubuntu:24.04:LTS | golang-github-jesseduffield-go-getter | 0 | No fix |
| Ubuntu:24.10 | golang-github-hashicorp-go-getter | 0 | No fix |
| Ubuntu:24.10 | golang-github-jesseduffield-go-getter | 0 | No fix |
| Ubuntu:25.04 | golang-github-hashicorp-go-getter | 0 | No fix |
| Ubuntu:25.10 | golang-github-hashicorp-go-getter | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | golang-github-hashicorp-go-getter | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | golang-github-hashicorp-go-getter | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | golang-github-jesseduffield-go-getter | 0 | No fix |
| Wolfi | conftest | 0 | 0.52.0-r0 |
| Wolfi | k9s | 0 | 0.32.4-r3 |
| Wolfi | kubescape | 0 | 3.0.9-r0 |
| Wolfi | opentofu | 0 | 1.7.0-r0 |
| Wolfi | opentofu-compat | 0 | 1.7.0-r0 |
| Wolfi | opentofu-local-provider-config | 0 | 1.7.0-r0 |
| Wolfi | terraform | 0 | 1.5.7-r8 |
| Wolfi | terraform-compat | 0 | 1.5.7-r8 |
| Wolfi | terraform-local-provider-config | 0 | 1.5.7-r8 |
| Wolfi | tflint | 0 | 0.51.0-r0 |
| Wolfi | tflint-compat | 0 | 0.51.0-r0 |
| Wolfi | tfsec | 0 | 1.28.5-r3 |
| Wolfi | zarf | 0 | 0.33.1-r1 |
| Wolfi | zot | 0 | 2.0.4-r0 |
| go | github.com/hashicorp/go-getter | 1.5.9 | 1.7.4 |
| openSUSE:Leap 15.6 | trivy | 0 | 0.58.2-bp156.2.6.1 |
| openSUSE:Leap 16.0 | trivy | 0 | 0.66.0-bp160.1.1 |
| openSUSE:Tumbleweed | trivy | 0 | 0.58.2-1.1 |
Related vulnerabilities
- CVE-2025-8959 HashiCorp's go-getter library subdirectory download feature is vulnerable to symlink… Also affects github.com/hashicorp/go-getter
- CVE-2024-6257 HashiCorp’s go-getter library can be coerced into executing Git update on an existing… Also affects github.com/hashicorp/go-getter
- CVE-2026-34986 Go JOSE provides an implementation of the Javascript Object Signing and Encryption set of… Also affects conftest
- CVE-2026-33748 BuildKit is a toolkit for converting source code to build artifacts in an efficient… Also affects conftest
- CVE-2026-33747 BuildKit is a toolkit for converting source code to build artifacts in an efficient… Also affects conftest
- CVE-2024-29018 Moby is an open source container framework that is a key component of Docker Engine… Also affects conftest
- CVE-2024-23652 BuildKit is a toolkit for converting source code to build artifacts in an efficient… Also affects conftest
- CVE-2024-23651 BuildKit is a toolkit for converting source code to build artifacts in an efficient… Also affects conftest