REDHAT-BUG-2162056: Integer Overflow
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::formatandpadcommit() where a sizet 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.
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#exportsubst https://git-scm.com/docs/pretty-formats#Documentation/pretty-formats.txt-emltltNgttruncltruncmtruncem
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
gitto a version that resolves this vulnerability.Fixed in v2.30.7Patch GHSA-475x-2q3q-hvwq - Configuration
Disable exposing `git archive` via `git daemon` by running: `git config --global daemon.uploadArch false` (applies when repositories are untrusted).
git daemon daemon.uploadArch = false
Event History
Frequently Asked Questions
What is the severity of REDHAT-BUG-2162056?
The severity of REDHAT-BUG-2162056 is classified as high due to the potential for integer overflow leading to unexpected behavior.
How do I fix REDHAT-BUG-2162056?
To fix REDHAT-BUG-2162056, you should upgrade Git to the latest version that addresses this vulnerability.
What versions of Git are affected by REDHAT-BUG-2162056?
Git versions from v2.30.7 and earlier are affected by REDHAT-BUG-2162056.
What does REDHAT-BUG-2162056 affect?
REDHAT-BUG-2162056 affects the `git log` and `git archive` functionalities that utilize the `export-subst` gitattribute.
Is there a workaround for REDHAT-BUG-2162056?
There are no known workarounds for REDHAT-BUG-2162056; the only effective solution is to update Git.