// For flags

CVE-2024-50349

Git does not sanitize URLs when asking for credentials interactively

Severity Score

2.1
*CVSS v4

Exploit Likelihood

*EPSS

Affected Versions

*CPE

Public Exploits

0
*Multiple Sources

Exploited in Wild

-
*KEV

Decision

Track
*SSVC
Descriptions

Git is a fast, scalable, distributed revision control system with an unusually rich command set that provides both high-level operations and full access to internals. When Git asks for credentials via a terminal prompt (i.e. without using any credential helper), it prints out the host name for which the user is expected to provide a username and/or a password. At this stage, any URL-encoded parts have been decoded already, and are printed verbatim. This allows attackers to craft URLs that contain ANSI escape sequences that the terminal interpret to confuse users e.g. into providing passwords for trusted Git hosting sites when in fact they are then sent to untrusted sites that are under the attacker's control. This issue has been patch via commits `7725b81` and `c903985` which are included in release versions v2.48.1, v2.47.1, v2.46.3, v2.45.3, v2.44.3, v2.43.6, v2.42.4, v2.41.3, and v2.40.4. Users are advised to upgrade. Users unable to upgrade should avoid cloning from untrusted URLs, especially recursive clones.

Git is a fast, scalable, distributed revision control system with an unusually rich command set that provides both high-level operations and full access to internals. When Git asks for credentials via a terminal prompt (i.e. without using any credential helper), it prints out the host name for which the user is expected to provide a username and/or a password. At this stage, any URL-encoded parts have been decoded already, and are printed verbatim. This allows attackers to craft URLs that contain ANSI escape sequences that the terminal interpret to confuse users e.g. into providing passwords for trusted Git hosting sites when in fact they are then sent to untrusted sites that are under the attacker's control. This issue has been patch via commits `7725b81` and `c903985` which are included in release versions v2.48.1, v2.47.2, v2.46.3, v2.45.3, v2.44.3, v2.43.6, v2.42.4, v2.41.3, and v2.40.4. Users are advised to upgrade. Users unable to upgrade should avoid cloning from untrusted URLs, especially recursive clones.

It was discovered that Git incorrectly handled certain URLs when asking for credentials. An attacker could possibly use this issue to mislead the user into typing passwords for trusted sites that would then be sent to untrusted sites instead. It was discovered that git incorrectly handled line endings when using credential helpers.

*Credits: N/A
CVSS Scores
Attack Vector
Network
Attack Complexity
High
Attack Requirements
Present
Privileges Required
None
User Interaction
Active
System
Vulnerable | Subsequent
Confidentiality
None
Low
Integrity
Low
Low
Availability
None
None
Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
Required
Scope
Unchanged
Confidentiality
None
Integrity
Low
Availability
None
Attack Vector
Network
Attack Complexity
High
Authentication
None
Confidentiality
None
Integrity
Partial
Availability
None
* Common Vulnerability Scoring System
SSVC
  • Decision:Track
Exploitation
None
Automatable
No
Tech. Impact
Partial
* Organization's Worst-case Scenario
Timeline
  • 2024-10-22 CVE Reserved
  • 2025-01-14 CVE Published
  • 2025-01-15 EPSS Updated
  • 2025-01-21 CVE Updated
  • ---------- Exploited in Wild
  • ---------- KEV Due Date
  • ---------- First Exploit
CWE
  • CWE-116: Improper Encoding or Escaping of Output
  • CWE-147: Improper Neutralization of Input Terminators
  • CWE-150: Improper Neutralization of Escape, Meta, or Control Sequences
CAPEC
Affected Vendors, Products, and Versions
Vendor Product Version Other Status
Vendor Product Version Other Status <-- --> Vendor Product Version Other Status
Git
Search vendor "Git"
Git
Search vendor "Git" for product "Git"
<= 2.40.3
Search vendor "Git" for product "Git" and version " <= 2.40.3"
en
Affected
Git
Search vendor "Git"
Git
Search vendor "Git" for product "Git"
>= 2.41.0 <= 2.41.2
Search vendor "Git" for product "Git" and version " >= 2.41.0 <= 2.41.2"
en
Affected
Git
Search vendor "Git"
Git
Search vendor "Git" for product "Git"
>= 2.42.0 <= 2.42.3
Search vendor "Git" for product "Git" and version " >= 2.42.0 <= 2.42.3"
en
Affected
Git
Search vendor "Git"
Git
Search vendor "Git" for product "Git"
>= 2.43.0 <= 2.43.5
Search vendor "Git" for product "Git" and version " >= 2.43.0 <= 2.43.5"
en
Affected
Git
Search vendor "Git"
Git
Search vendor "Git" for product "Git"
>= 2.44.0 <= 2.44.2
Search vendor "Git" for product "Git" and version " >= 2.44.0 <= 2.44.2"
en
Affected
Git
Search vendor "Git"
Git
Search vendor "Git" for product "Git"
>= 2.45.0 <= 2.45.2
Search vendor "Git" for product "Git" and version " >= 2.45.0 <= 2.45.2"
en
Affected
Git
Search vendor "Git"
Git
Search vendor "Git" for product "Git"
>= 2.46.0 <= 2.46.2
Search vendor "Git" for product "Git" and version " >= 2.46.0 <= 2.46.2"
en
Affected
Git
Search vendor "Git"
Git
Search vendor "Git" for product "Git"
>= 2.47.0 < 2.47.2
Search vendor "Git" for product "Git" and version " >= 2.47.0 < 2.47.2"
en
Affected
Git
Search vendor "Git"
Git
Search vendor "Git" for product "Git"
2.48.0
Search vendor "Git" for product "Git" and version "2.48.0"
en
Affected