Debian 9909 Published by

A git security update has been released for Debian GNU/Linux 10 LTS to address two vulnerabilities that allowed an attacker to trigger code execution in specific situations.



DLA 3282-1: git security update



- -------------------------------------------------------------------------
Debian LTS Advisory DLA-3282-1 debian-lts@lists.debian.org
  https://www.debian.org/lts/security/ Sylvain Beucler
January 26, 2023   https://wiki.debian.org/LTS
- -------------------------------------------------------------------------

Package : git
Version : 1:2.20.1-2+deb10u7
CVE ID : CVE-2022-23521 CVE-2022-41903
Debian Bug : 1029114

Two vulnerabilities were discovered in Git, a distributed revision
control system. An attacker may trigger code execution in specific
situations.

CVE-2022-23521

gitattributes are a mechanism to allow defining attributes for
paths. These attributes can be defined by adding a
`.gitattributes` file to the repository, which contains a set of
file patterns and the attributes that should be set for paths
matching this pattern. When parsing gitattributes, multiple
integer overflows can occur when there is a huge number of path
patterns, a huge number of attributes for a single pattern, or
when the declared attribute names are huge. These overflows can be
triggered via a crafted `.gitattributes` file that may be part of
the commit history. Git silently splits lines longer than 2KB when
parsing gitattributes from a file, but not when parsing them from
the index. Consequentially, the failure mode depends on whether
the file exists in the working tree, the index or both. This
integer overflow can result in arbitrary heap reads and writes,
which may result in remote code execution.

CVE-2022-41903

`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.

For Debian 10 buster, these problems have been fixed in version
1:2.20.1-2+deb10u7.

We recommend that you upgrade your git packages.

For the detailed security status of git please refer to
its security tracker page at:
  https://security-tracker.debian.org/tracker/git

Further information about Debian LTS security advisories, how to apply
these updates to your system and frequently asked questions can be
found at:   https://wiki.debian.org/LTS