CVE-2022-39260: Git vulnerable to Remote Code Execution via Heap overflow in `git shell`
Git is an open source, scalable, distributed revision control system. git shell is a restricted login shell that can be used to implement Git's push/pull functionality via SSH. In versions prior to 2.30.6, 2.31.5, 2.32.4, 2.33.5, 2.34.5, 2.35.5, 2.36.3, and 2.37.4, the function that splits the command arguments into an array improperly uses an int to represent the number of entries in the array, allowing a malicious actor to intentionally overflow the return value, leading to arbitrary heap writes. Because the resulting array is then passed to execv(), it is possible to leverage this attack to gain remote code execution on a victim machine. Note that a victim must first allow access to git shell as a login shell in order to be vulnerable to this attack. This problem is patched in versions 2.30.6, 2.31.5, 2.32.4, 2.33.5, 2.34.5, 2.35.5, 2.36.3, and 2.37.4 and users are advised to upgrade to the latest version. Disabling git shell access via remote logins is a viable short-term workaround.
Other sources
Git. This issue was addressed with improved checks.
— Apple
Credit
Affected Software
Remediation
Information
Event History
Parent advisories
This vulnerability appears in the following advisories.
Peer vulnerabilities
Found alongside the following vulnerabilities.
Frequently Asked Questions
What is the vulnerability ID of this issue?
The vulnerability ID of this issue is CVE-2022-39260.
What is the severity of CVE-2022-39260?
The severity of CVE-2022-39260 is high with a CVSS score of 8.8.
What is the affected software?
The affected software includes Apple Xcode version up to 14.1 and Git versions up to 2.37.4.
How does this vulnerability affect Git?
This vulnerability in Git allows an attacker to exploit the function that splits the command using a specially crafted path and execute arbitrary code.
What is the fix for this vulnerability?
To fix this vulnerability, it is recommended to update Git to version 2.37.4 or later.