CVE-2020-5260

malicious URLs may cause Git to present stored credentials to the wrong server

HIGH
7.5
CVSS Score
Published: April 14, 2020 at 10:50 PM UTC
Updated: June 17, 2026 at 03:21 AM UTC
6 products affected across 6 vendorsDebian LinuxFedoraUbuntu Linux

Using git by git?

Get instant alerts when new vulnerabilities affect git - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
HIGH7.5
Exploit prediction
EPSS 10%

Description

Affected versions of Git have a vulnerability whereby Git can be tricked into sending private credentials to a host controlled by an attacker. Git uses external "credential helper" programs to store and retrieve passwords or other credentials from secure storage provided by the operating system. Specially-crafted URLs that contain an encoded newline can inject unintended values into the credential helper protocol stream, causing the credential helper to retrieve the password for one server (e.g., good.example.com) for an HTTP request being made to another server (e.g., evil.example.com), resulting in credentials for the former being sent to the latter. There are no restrictions on the relationship between the two, meaning that an attacker can craft a URL that will present stored credentials for any host to a host of their choosing. The vulnerability can be triggered by feeding a malicious URL to git clone. However, the affected URLs look rather suspicious; the likely vector would be through systems which automatically clone URLs not visible to the user, such as Git submodules, or package systems built around Git. The problem has been patched in the versions published on April 14th, 2020, going back to v2.17.x. Anyone wishing to backport the change further can do so by applying commit 9a6bbee (the full release includes extra checks for git fsck, but that commit is sufficient to protect clients against the vulnerability). The patched versions are: 2.17.4, 2.18.3, 2.19.4, 2.20.3, 2.21.2, 2.22.3, 2.23.2, 2.24.2, 2.25.3, 2.26.1.

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

Git· Gitrubygems
95%
v < 2.17.4v < 2.18.3v < 2.20.3v < 2.21.2v < 2.22.3v < 2.23.2v < 2.24.2v < 2.25.3v < 2.26.12.22.0 ≤ v < 2.22.3>= 2.19.0, 2.19.4
Affected range stops below 2.17.4, so it looks safe — our inference, not a vendor statement
Affected range stops below 2.18.3, so it looks safe — our inference, not a vendor statement
Affected range stops below 2.20.3, so it looks safe — our inference, not a vendor statement
Affected range stops below 2.21.2, so it looks safe — our inference, not a vendor statement
Affected range stops below 2.22.3, so it looks safe — our inference, not a vendor statement
Affected range stops below 2.23.2, so it looks safe — our inference, not a vendor statement
Affected range stops below 2.24.2, so it looks safe — our inference, not a vendor statement
Affected range stops below 2.25.3, so it looks safe — our inference, not a vendor statement
Affected range stops below 2.26.1, so it looks safe — our inference, not a vendor statement
2.18.0 ≤ v < 2.18.32.19.0 ≤ v < 2.19.42.20.0 ≤ v < 2.20.32.21.0 ≤ v < 2.21.22.23.0 ≤ v < 2.23.22.24.0 ≤ v < 2.24.22.25.0 ≤ v < 2.25.32.26.0 ≤ v < 2.26.1
Affected range stops below 2.18.3, so it looks safe — our inference, not a vendor statement
Affected range stops below 2.19.4, so it looks safe — our inference, not a vendor statement
Affected range stops below 2.20.3, so it looks safe — our inference, not a vendor statement
Affected range stops below 2.21.2, so it looks safe — our inference, not a vendor statement
Affected range stops below 2.23.2, so it looks safe — our inference, not a vendor statement
Affected range stops below 2.24.2, so it looks safe — our inference, not a vendor statement
Affected range stops below 2.25.3, so it looks safe — our inference, not a vendor statement
Affected range stops below 2.26.1, so it looks safe — our inference, not a vendor statement

References (19)

CVSS

Attack Vector
NETWORK
Complexity
LOW
Privileges
NONE
User Interaction
NONE
Scope
UNCHANGED
Confidentiality
HIGH
Integrity
NONE
Availability
NONE
Vector?

Quick Info

StatusMODIFIED
CWE
CWE-20CWE-522

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card