ubuntu-cve-2022-39260
Vulnerability from osv_ubuntu
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.
{
"affected": [
{
"ecosystem_specific": {
"availability": "Available with Ubuntu Pro (Infra-only): https://ubuntu.com/pro",
"binaries": [
{
"binary_name": "git",
"binary_version": "1:2.7.4-0ubuntu1.10+esm3"
},
{
"binary_name": "git-all",
"binary_version": "1:2.7.4-0ubuntu1.10+esm3"
},
{
"binary_name": "git-arch",
"binary_version": "1:2.7.4-0ubuntu1.10+esm3"
},
{
"binary_name": "git-core",
"binary_version": "1:2.7.4-0ubuntu1.10+esm3"
},
{
"binary_name": "git-cvs",
"binary_version": "1:2.7.4-0ubuntu1.10+esm3"
},
{
"binary_name": "git-daemon-run",
"binary_version": "1:2.7.4-0ubuntu1.10+esm3"
},
{
"binary_name": "git-daemon-sysvinit",
"binary_version": "1:2.7.4-0ubuntu1.10+esm3"
},
{
"binary_name": "git-el",
"binary_version": "1:2.7.4-0ubuntu1.10+esm3"
},
{
"binary_name": "git-email",
"binary_version": "1:2.7.4-0ubuntu1.10+esm3"
},
{
"binary_name": "git-gui",
"binary_version": "1:2.7.4-0ubuntu1.10+esm3"
},
{
"binary_name": "git-man",
"binary_version": "1:2.7.4-0ubuntu1.10+esm3"
},
{
"binary_name": "git-mediawiki",
"binary_version": "1:2.7.4-0ubuntu1.10+esm3"
},
{
"binary_name": "git-svn",
"binary_version": "1:2.7.4-0ubuntu1.10+esm3"
},
{
"binary_name": "gitk",
"binary_version": "1:2.7.4-0ubuntu1.10+esm3"
},
{
"binary_name": "gitweb",
"binary_version": "1:2.7.4-0ubuntu1.10+esm3"
}
]
},
"package": {
"ecosystem": "Ubuntu:Pro:16.04:LTS",
"name": "git",
"purl": "pkg:deb/ubuntu/git@1:2.7.4-0ubuntu1.10+esm3?arch=source\u0026distro=esm-infra/xenial"
},
"ranges": [
{
"events": [
{
"introduced": "0"
},
{
"fixed": "1:2.7.4-0ubuntu1.10+esm3"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"1:2.5.0-1",
"1:2.6.2-1",
"1:2.6.3-1",
"1:2.6.4-1",
"1:2.7.0~rc3-1",
"1:2.7.0-1",
"1:2.7.3-0ubuntu1",
"1:2.7.4-0ubuntu1",
"1:2.7.4-0ubuntu1.1",
"1:2.7.4-0ubuntu1.2",
"1:2.7.4-0ubuntu1.3",
"1:2.7.4-0ubuntu1.4",
"1:2.7.4-0ubuntu1.5",
"1:2.7.4-0ubuntu1.6",
"1:2.7.4-0ubuntu1.7",
"1:2.7.4-0ubuntu1.8",
"1:2.7.4-0ubuntu1.9",
"1:2.7.4-0ubuntu1.10",
"1:2.7.4-0ubuntu1.10+esm1"
]
},
{
"ecosystem_specific": {
"availability": "No subscription required",
"binaries": [
{
"binary_name": "git",
"binary_version": "1:2.17.1-1ubuntu0.13"
},
{
"binary_name": "git-all",
"binary_version": "1:2.17.1-1ubuntu0.13"
},
{
"binary_name": "git-cvs",
"binary_version": "1:2.17.1-1ubuntu0.13"
},
{
"binary_name": "git-daemon-run",
"binary_version": "1:2.17.1-1ubuntu0.13"
},
{
"binary_name": "git-daemon-sysvinit",
"binary_version": "1:2.17.1-1ubuntu0.13"
},
{
"binary_name": "git-el",
"binary_version": "1:2.17.1-1ubuntu0.13"
},
{
"binary_name": "git-email",
"binary_version": "1:2.17.1-1ubuntu0.13"
},
{
"binary_name": "git-gui",
"binary_version": "1:2.17.1-1ubuntu0.13"
},
{
"binary_name": "git-man",
"binary_version": "1:2.17.1-1ubuntu0.13"
},
{
"binary_name": "git-mediawiki",
"binary_version": "1:2.17.1-1ubuntu0.13"
},
{
"binary_name": "git-svn",
"binary_version": "1:2.17.1-1ubuntu0.13"
},
{
"binary_name": "gitk",
"binary_version": "1:2.17.1-1ubuntu0.13"
},
{
"binary_name": "gitweb",
"binary_version": "1:2.17.1-1ubuntu0.13"
}
]
},
"package": {
"ecosystem": "Ubuntu:18.04:LTS",
"name": "git",
"purl": "pkg:deb/ubuntu/git@1:2.17.1-1ubuntu0.13?arch=source\u0026distro=bionic"
},
"ranges": [
{
"events": [
{
"introduced": "0"
},
{
"fixed": "1:2.17.1-1ubuntu0.13"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"1:2.14.1-1ubuntu4",
"1:2.15.1-1ubuntu2",
"1:2.17.0-1ubuntu1",
"1:2.17.1-1ubuntu0.1",
"1:2.17.1-1ubuntu0.3",
"1:2.17.1-1ubuntu0.4",
"1:2.17.1-1ubuntu0.5",
"1:2.17.1-1ubuntu0.6",
"1:2.17.1-1ubuntu0.7",
"1:2.17.1-1ubuntu0.8",
"1:2.17.1-1ubuntu0.9",
"1:2.17.1-1ubuntu0.10",
"1:2.17.1-1ubuntu0.11",
"1:2.17.1-1ubuntu0.12"
]
},
{
"ecosystem_specific": {
"availability": "No subscription required",
"binaries": [
{
"binary_name": "git",
"binary_version": "1:2.25.1-1ubuntu3.6"
},
{
"binary_name": "git-all",
"binary_version": "1:2.25.1-1ubuntu3.6"
},
{
"binary_name": "git-cvs",
"binary_version": "1:2.25.1-1ubuntu3.6"
},
{
"binary_name": "git-daemon-run",
"binary_version": "1:2.25.1-1ubuntu3.6"
},
{
"binary_name": "git-daemon-sysvinit",
"binary_version": "1:2.25.1-1ubuntu3.6"
},
{
"binary_name": "git-el",
"binary_version": "1:2.25.1-1ubuntu3.6"
},
{
"binary_name": "git-email",
"binary_version": "1:2.25.1-1ubuntu3.6"
},
{
"binary_name": "git-gui",
"binary_version": "1:2.25.1-1ubuntu3.6"
},
{
"binary_name": "git-man",
"binary_version": "1:2.25.1-1ubuntu3.6"
},
{
"binary_name": "git-mediawiki",
"binary_version": "1:2.25.1-1ubuntu3.6"
},
{
"binary_name": "git-svn",
"binary_version": "1:2.25.1-1ubuntu3.6"
},
{
"binary_name": "gitk",
"binary_version": "1:2.25.1-1ubuntu3.6"
},
{
"binary_name": "gitweb",
"binary_version": "1:2.25.1-1ubuntu3.6"
}
]
},
"package": {
"ecosystem": "Ubuntu:20.04:LTS",
"name": "git",
"purl": "pkg:deb/ubuntu/git@1:2.25.1-1ubuntu3.6?arch=source\u0026distro=focal"
},
"ranges": [
{
"events": [
{
"introduced": "0"
},
{
"fixed": "1:2.25.1-1ubuntu3.6"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"1:2.20.1-2ubuntu1",
"1:2.24.0-1ubuntu1",
"1:2.24.0-1ubuntu2",
"1:2.25.0-1ubuntu1",
"1:2.25.1-1ubuntu1",
"1:2.25.1-1ubuntu2",
"1:2.25.1-1ubuntu3",
"1:2.25.1-1ubuntu3.1",
"1:2.25.1-1ubuntu3.2",
"1:2.25.1-1ubuntu3.3",
"1:2.25.1-1ubuntu3.4",
"1:2.25.1-1ubuntu3.5"
]
},
{
"ecosystem_specific": {
"availability": "No subscription required",
"binaries": [
{
"binary_name": "git",
"binary_version": "1:2.34.1-1ubuntu1.5"
},
{
"binary_name": "git-all",
"binary_version": "1:2.34.1-1ubuntu1.5"
},
{
"binary_name": "git-cvs",
"binary_version": "1:2.34.1-1ubuntu1.5"
},
{
"binary_name": "git-daemon-run",
"binary_version": "1:2.34.1-1ubuntu1.5"
},
{
"binary_name": "git-daemon-sysvinit",
"binary_version": "1:2.34.1-1ubuntu1.5"
},
{
"binary_name": "git-email",
"binary_version": "1:2.34.1-1ubuntu1.5"
},
{
"binary_name": "git-gui",
"binary_version": "1:2.34.1-1ubuntu1.5"
},
{
"binary_name": "git-man",
"binary_version": "1:2.34.1-1ubuntu1.5"
},
{
"binary_name": "git-mediawiki",
"binary_version": "1:2.34.1-1ubuntu1.5"
},
{
"binary_name": "git-svn",
"binary_version": "1:2.34.1-1ubuntu1.5"
},
{
"binary_name": "gitk",
"binary_version": "1:2.34.1-1ubuntu1.5"
},
{
"binary_name": "gitweb",
"binary_version": "1:2.34.1-1ubuntu1.5"
}
]
},
"package": {
"ecosystem": "Ubuntu:22.04:LTS",
"name": "git",
"purl": "pkg:deb/ubuntu/git@1:2.34.1-1ubuntu1.5?arch=source\u0026distro=jammy"
},
"ranges": [
{
"events": [
{
"introduced": "0"
},
{
"fixed": "1:2.34.1-1ubuntu1.5"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"1:2.32.0-1ubuntu1",
"1:2.33.1-1ubuntu1",
"1:2.34.1-1ubuntu1",
"1:2.34.1-1ubuntu1.1",
"1:2.34.1-1ubuntu1.2",
"1:2.34.1-1ubuntu1.4"
]
}
],
"aliases": [],
"details": "Git is an open source, scalable, distributed revision control system. `git shell` is a restricted login shell that can be used to implement Git\u0027s 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.",
"id": "UBUNTU-CVE-2022-39260",
"modified": "2025-09-08T16:50:23Z",
"published": "2022-10-18T17:00:00Z",
"references": [
{
"type": "REPORT",
"url": "https://ubuntu.com/security/CVE-2022-39260"
},
{
"type": "ADVISORY",
"url": "https://ubuntu.com/security/notices/USN-5686-1"
},
{
"type": "ADVISORY",
"url": "https://ubuntu.com/security/notices/USN-5686-2"
},
{
"type": "ADVISORY",
"url": "https://ubuntu.com/security/notices/USN-5686-3"
},
{
"type": "REPORT",
"url": "https://www.cve.org/CVERecord?id=CVE-2022-39260"
}
],
"related": [
"USN-5686-1",
"USN-5686-2",
"USN-5686-3"
],
"schema_version": "1.7.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H",
"type": "CVSS_V3"
},
{
"score": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H",
"type": "CVSS_V3"
},
{
"score": "medium",
"type": "Ubuntu"
}
],
"upstream": [
"CVE-2022-39260"
]
}
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.