Git LFS is a command line extension for managing large files with Git. On Windows, if Git LFS operates on a malicious repository with a git.bat or git.exe file in the current directory, that program would be executed, permitting the attacker to execute arbitrary code. This does not affect Unix systems. This is the result of an incomplete fix for CVE-2020-27955. This issue occurs because on Windows, Go includes (and prefers) the current directory when the name of a command run does not contain a directory separator. Other than avoiding untrusted repositories or using a different operating system, there is no workaround. This is fixed in v2.13.2.
The product searches for critical resources using an externally-supplied search path that can point to resources that are not under the product’s direct control.
Name | Vendor | Start Version | End Version |
---|---|---|---|
Git_large_file_storage | Git_large_file_storage_project | * | 2.13.2 (excluding) |
Git-lfs | Ubuntu | bionic | * |
Git-lfs | Ubuntu | esm-apps/bionic | * |
Git-lfs | Ubuntu | esm-apps/focal | * |
Git-lfs | Ubuntu | focal | * |
Git-lfs | Ubuntu | groovy | * |
Git-lfs | Ubuntu | trusty | * |
Git-lfs | Ubuntu | upstream | * |
This might allow attackers to execute their own programs, access unauthorized data files, or modify configuration in unexpected ways. If the product uses a search path to locate critical resources such as programs, then an attacker could modify that search path to point to a malicious program, which the targeted product would then execute. The problem extends to any type of critical resource that the product trusts. Some of the most common variants of untrusted search path are: