CVE-2022-41903
CVE-2022-41903 · Integer overflow in `git archive`, `git log --format` leading to RCE in git
This page contains facts from public vulnerability sources. Check the original advisory before updating.
Git is distributed revision control system. `git log` can display commits in an arbitrary format using its `--format` specifiers. This functionality is also exposed to `git archive` via the `export-subst` gitattribute. When processing the padding operators, there is a integer overflow in `pretty.c::format_and_pad_commit()` where a `size_t` is stored improperly as an `int`, and then added as an offset to a `memcpy()`. This overflow can be triggered directly by a user running a command which invokes the commit formatting machinery (e.g., `git log --format=...`). It may also be triggered indirectly through git archive via the export-subst mechanism, which expands format specifiers inside of files within the repository during a git archive. This integer overflow can result in arbitrary heap writes, which may result in arbitrary code execution. The problem has been patched in the versions published on 2023-01-17, going back to v2.30.7. Users are advised to upgrade. Users who are unable to upgrade should disable `git archive` in untrusted repositories. If you expose git archive via `git daemon`, disable it by running `git config --global daemon.uploadArch false`.
CVSS 9.8 · Critical · EPSS 44.3% · Fix available
- Published
- Updated
Stack: system
Affected products and versions
git
- Versions
- < 2.30.7: Affected
- >= 2.31.0, < 2.31.6: Affected
- >= 2.32.0, < 2.32.5: Affected
- >= 2.33.0, < 2.33.6: Affected
- >= 2.34.0, < 2.34.6: Affected
- >= 2.35.0, < 2.35.6: Affected
- >= 2.36.0, < 2.36.4: Affected
- >= 2.37.0, < 2.37.5: Affected
- >= 2.38.0, < 2.38.3: Affected
- = 2.39.0: Affected
No fix published
git Debian:12
- Affected ranges
- ECOSYSTEM: < 1:2.39.1-0.1
Update to 1:2.39.1-0.1
git Debian:13
- Affected ranges
- ECOSYSTEM: < 1:2.39.1-0.1
Update to 1:2.39.1-0.1
git Debian:14
- Affected ranges
- ECOSYSTEM: < 1:2.39.1-0.1
Update to 1:2.39.1-0.1
git Ubuntu:Pro:14.04:LTS
- Versions
- 1:1.8.3.2-1
- 1:1.8.4.2-1
- 1:1.8.4.3-1
- 1:1.8.4.4-1
- 1:1.8.5-1
- 1:1.8.5.1-1
- 1:1.8.5.2-1
- 1:1.8.5.2-2
- 1:1.8.5.3-1
- 1:1.9~rc1-1
- 1:1.9.0-1
- 1:1.9.1-1
- 1:1.9.1-1ubuntu0.1
- 1:1.9.1-1ubuntu0.2
- 1:1.9.1-1ubuntu0.3
- 1:1.9.1-1ubuntu0.4
- 1:1.9.1-1ubuntu0.5
- 1:1.9.1-1ubuntu0.6
- 1:1.9.1-1ubuntu0.7
- 1:1.9.1-1ubuntu0.8
- 1:1.9.1-1ubuntu0.9
- 1:1.9.1-1ubuntu0.10
- Affected ranges
- ECOSYSTEM: < 1:1.9.1-1ubuntu0.10+esm1
Update to 1:1.9.1-1ubuntu0.10+esm1
git Ubuntu:Pro:16.04:LTS
- 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
- 1:2.7.4-0ubuntu1.10+esm3
- Affected ranges
- ECOSYSTEM: < 1:2.7.4-0ubuntu1.10+esm4
Update to 1:2.7.4-0ubuntu1.10+esm4
git Ubuntu:18.04:LTS
- 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
- 1:2.17.1-1ubuntu0.13
- 1:2.17.1-1ubuntu0.14
- Affected ranges
- ECOSYSTEM: < 1:2.17.1-1ubuntu0.15
Update to 1:2.17.1-1ubuntu0.15
git Ubuntu:20.04:LTS
- 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
- 1:2.25.1-1ubuntu3.6
- 1:2.25.1-1ubuntu3.7
- Affected ranges
- ECOSYSTEM: < 1:2.25.1-1ubuntu3.8
Update to 1:2.25.1-1ubuntu3.8
git Ubuntu:22.04:LTS
- 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
- 1:2.34.1-1ubuntu1.5
- Affected ranges
- ECOSYSTEM: < 1:2.34.1-1ubuntu1.6
Update to 1:2.34.1-1ubuntu1.6
Original sources
- https://github.com/git/git/security/advisories/GHSA-475x-2q3q-hvwq
- https://github.com/git/git/commit/508386c6c5857b4faa2c3e491f422c98cc69ae76
- https://git-scm.com/book/en/v2/Customizing-Git-Git-Attributes#_export_subst
- https://git-scm.com/docs/pretty-formats#Documentation/pretty-formats.txt-emltltNgttruncltruncmtruncem
- https://security.gentoo.org/glsa/202312-15
- https://nvd.nist.gov/vuln/detail/CVE-2022-41903