CVE-2020-27955
published 2021-01-15CVE-2020-27955: 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…
critical9.8CVSS 3.1
AVNACLPRNUINSUCHIHAH
EXPLOIT
EPSS
82.72%
99.6th percentile
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.
Affected
4 ranges
| Vendor | Product | Version range | Fixed in |
|---|---|---|---|
| debian | git-lfs | — | — |
| git_large_file_storage_project | git_large_file_storage | < 2.13.2 | 2.13.2 |
| github.com | git-lfs_git-lfs | >= 0 < 2.12.1 | 2.12.1 |
| github.com | git-lfs_git-lfs | >= 0 < 2.13.2 | 2.13.2 |
Detection & IOCsextracted from sources · hover to see the quote
- →On Windows, detect presence of git.bat or git.exe in the current working directory when git-lfs is invoked — these files should not exist in a repository's working directory and their presence indicates a malicious repository exploit attempt. ↗
- →On Windows, Go resolves commands without directory separators by searching the current directory first — monitor for child process spawning from git-lfs where the parent process path and the child executable path share the same working directory. ↗
- →A Metasploit exploit module exists for this CVE targeting Windows HTTP attack surface — monitor for exploitation attempts via malicious repository cloning operations. ↗
- →Victims are tricked into cloning a malicious repository — alert on git clone operations followed by unexpected execution of git.bat or git.exe from a non-standard path (e.g., repository working directory). ↗
- ·This vulnerability is Windows-only; Unix/Linux systems are not affected and do not require detection coverage for this specific attack vector. ↗
- ·CVE-2020-27955 had an incomplete fix; the bypass (CVE-2021-21237) persists until v2.13.2 — ensure detection and patching covers both CVEs and targets Git LFS versions up to and including 2.12.x. ↗
CVSS provenance
nvdv3.19.8CRITICALCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
nvdv2.010.0CRITICALAV:N/AC:L/Au:N/C:C/I:C/A:C
ghsa9.8CRITICAL
osv9.8CRITICAL
vendor_debian9.8LOW
CVEs like this are exactly what “Exploited This Week” covers.
Every Monday: what got weaponized or added to CISA KEV in the last seven days — each CVE cross-linked to its PoC, Nuclei template, and detection rule. Free, one email a week, unsubscribe in one click.
OSV
Git LFS can execute a Git binary from the current directory on Windows
osv·2022-02-15·CVSS 9.8
CVE-2021-21237 [CRITICAL] Git LFS can execute a Git binary from the current directory on Windows
Git LFS can execute a Git binary from the current directory on Windows
### Impact
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](https://github.com/golang/go/issues/38736).
### Patches
This version should be patched in v2.13.2, which will be released in coordination with this security advisory.
### Workarounds
Other than avoiding untrusted repositories or using a different operating syste
GHSA
Git LFS can execute a Git binary from the current directory on Windows
ghsa·2022-02-15·CVSS 9.8
CVE-2021-21237 [CRITICAL] CWE-426 Git LFS can execute a Git binary from the current directory on Windows
Git LFS can execute a Git binary from the current directory on Windows
### Impact
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](https://github.com/golang/go/issues/38736).
### Patches
This version should be patched in v2.13.2, which will be released in coordination with this security advisory.
### Workarounds
Other than avoiding untrusted repositories or using a different operating syste
OSV
Git LFS can execute a Git binary from the current directory
osv·2022-02-11
CVE-2020-27955 [CRITICAL] Git LFS can execute a Git binary from the current directory
Git LFS can execute a Git binary from the current directory
### Impact
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 occurs because on Windows, Go includes (and prefers) the current directory when the name of a command run does not contain a directory separator.
### Patches
This version should be patched in v2.12.1, which will be released in coordination with this security advisory.
### Workarounds
Other than avoiding untrusted repositories, there is no workaround.
### For more information
If you have any questions or comments about this advisory:
* Start a discussion in [the Git LFS discussi
GHSA
Git LFS can execute a Git binary from the current directory
ghsa·2022-02-11
CVE-2020-27955 [CRITICAL] CWE-427 Git LFS can execute a Git binary from the current directory
Git LFS can execute a Git binary from the current directory
### Impact
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 occurs because on Windows, Go includes (and prefers) the current directory when the name of a command run does not contain a directory separator.
### Patches
This version should be patched in v2.12.1, which will be released in coordination with this security advisory.
### Workarounds
Other than avoiding untrusted repositories, there is no workaround.
### For more information
If you have any questions or comments about this advisory:
* Start a discussion in [the Git LFS discussi
OSV
CVE-2021-21237: Git LFS is a command line extension for managing large files with Git
osv·2021-01-15·CVSS 9.8
CVE-2021-21237 [CRITICAL] CVE-2021-21237: Git LFS is a command line extension for managing large files with Git
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.
Debian
CVE-2021-21237: git-lfs - Git LFS is a command line extension for managing large files with Git. On Window...
vendor_debian·2021·CVSS 9.8
CVE-2021-21237 [CRITICAL] CVE-2021-21237: git-lfs - Git LFS is a command line extension for managing large files with Git. On Window...
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.
Scope: local
bookworm: resolved
bullseye: resolved
forky: resolved
sid: resolved
trixie: resolved
Debian
CVE-2020-27955: git-lfs - Git LFS 2.12.0 allows Remote Code Execution.
vendor_debian·2020·CVSS 9.8
CVE-2020-27955 [CRITICAL] CVE-2020-27955: git-lfs - Git LFS 2.12.0 allows Remote Code Execution.
Git LFS 2.12.0 allows Remote Code Execution.
Scope: local
bookworm: resolved
bullseye: resolved
forky: resolved
sid: resolved
trixie: resolved
No detection rules found.
No writeups or analysis indexed.
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-27955https://github.com/git-lfs/git-lfs/commit/fc664697ed2c2081ee9633010de0a7f9debea72ahttps://github.com/git-lfs/git-lfs/releases/tag/v2.13.2https://github.com/git-lfs/git-lfs/security/advisories/GHSA-cx3w-xqmc-84g5https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-27955https://github.com/git-lfs/git-lfs/commit/fc664697ed2c2081ee9633010de0a7f9debea72ahttps://github.com/git-lfs/git-lfs/releases/tag/v2.13.2https://github.com/git-lfs/git-lfs/security/advisories/GHSA-cx3w-xqmc-84g5
2021-01-15
Published