// For flags

CVE-2024-32020

Cloning local Git repository by untrusted user allows the untrusted user to modify objects in the cloned repository at will

Severity Score

3.9
*CVSS v3.1

Exploit Likelihood

*EPSS

Affected Versions

*CPE

Public Exploits

0
*Multiple Sources

Exploited in Wild

-
*KEV

Decision

Track
*SSVC
Descriptions

Git is a revision control system. Prior to versions 2.45.1, 2.44.1, 2.43.4, 2.42.2, 2.41.1, 2.40.2, and 2.39.4, local clones may end up hardlinking files into the target repository's object database when source and target repository reside on the same disk. If the source repository is owned by a different user, then those hardlinked files may be rewritten at any point in time by the untrusted user. Cloning local repositories will cause Git to either copy or hardlink files of the source repository into the target repository. This significantly speeds up such local clones compared to doing a "proper" clone and saves both disk space and compute time. When cloning a repository located on the same disk that is owned by a different user than the current user we also end up creating such hardlinks. These files will continue to be owned and controlled by the potentially-untrusted user and can be rewritten by them at will in the future. The problem has been patched in versions 2.45.1, 2.44.1, 2.43.4, 2.42.2, 2.41.1, 2.40.2, and 2.39.4.

Git es un sistema de control de revisiones. Antes de las versiones 2.45.1, 2.44.1, 2.43.4, 2.42.2, 2.41.1, 2.40.2 y 2.39.4, los clones locales pueden terminar vinculando archivos a la base de datos de objetos del repositorio de destino cuando el repositorio de origen y el de destino residen en el mismo disco. Si el repositorio de origen es propiedad de un usuario diferente, el usuario que no es de confianza puede reescribir esos archivos vinculados en cualquier momento. La clonación de repositorios locales hará que Git copie o vincule archivos del repositorio de origen al repositorio de destino. Esto acelera significativamente dichos clones locales en comparación con realizar un clon "adecuado" y ahorra espacio en disco y tiempo de cálculo. Al clonar un repositorio ubicado en el mismo disco que es propiedad de un usuario diferente al usuario actual, también terminamos creando dichos enlaces físicos. Estos archivos seguirán siendo propiedad y controlados por el usuario potencialmente no confiable y podrán ser reescritos por él a voluntad en el futuro. El problema se solucionó en las versiones 2.45.1, 2.44.1, 2.43.4, 2.42.2, 2.41.1, 2.40.2 y 2.39.4.

A vulnerability was found in Git. This flaw allows an unauthenticated attacker to place a specialized repository on their target's local system. For performance reasons, Git uses hardlinks when cloning a repository located on the same disk. However, if the repo being cloned is owned by a different user, this can introduce a security risk. At any time in the future, the original repo owner could rewrite the hardlinked files in the cloned user's repo.

*Credits: N/A
CVSS Scores
Attack Vector
Local
Attack Complexity
High
Privileges Required
Low
User Interaction
Required
Scope
Changed
Confidentiality
None
Integrity
Low
Availability
Low
* Common Vulnerability Scoring System
SSVC
  • Decision:Track
Exploitation
None
Automatable
No
Tech. Impact
Partial
* Organization's Worst-case Scenario
Timeline
  • 2024-04-09 CVE Reserved
  • 2024-05-14 CVE Published
  • 2024-05-15 EPSS Updated
  • 2024-08-02 CVE Updated
  • ---------- Exploited in Wild
  • ---------- KEV Due Date
  • ---------- First Exploit
CWE
  • CWE-62: UNIX Hard Link
  • CWE-281: Improper Preservation of Permissions
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.45.0
Search vendor "Git" for product "Git" and version "2.45.0"
en
Affected
Git
Search vendor "Git"
Git
Search vendor "Git" for product "Git"
2.44.0
Search vendor "Git" for product "Git" and version "2.44.0"
en
Affected
Git
Search vendor "Git"
Git
Search vendor "Git" for product "Git"
>= 2.43.0 < 2.43.4
Search vendor "Git" for product "Git" and version " >= 2.43.0 < 2.43.4"
en
Affected
Git
Search vendor "Git"
Git
Search vendor "Git" for product "Git"
>= 2.42.0 < 2.42.2
Search vendor "Git" for product "Git" and version " >= 2.42.0 < 2.42.2"
en
Affected
Git
Search vendor "Git"
Git
Search vendor "Git" for product "Git"
2.41.0
Search vendor "Git" for product "Git" and version "2.41.0"
en
Affected
Git
Search vendor "Git"
Git
Search vendor "Git" for product "Git"
>= 2.40.0 < 2.40.2
Search vendor "Git" for product "Git" and version " >= 2.40.0 < 2.40.2"
en
Affected
Git
Search vendor "Git"
Git
Search vendor "Git" for product "Git"
< 2.39.4
Search vendor "Git" for product "Git" and version " < 2.39.4"
en
Affected