Skip to content
MinGit for Windows v2.35.6

Changes since Git for Windows v2.35.5 (October 13 2022):

Bug Fixes

* CVE-2022-41903:

   git log has the ability to display commits using an arbitrary
   format with its --format specifiers. This functionality is also
   exposed to git archive via the export-subst gitattribute.

   When processing the padding operators (e.g., %<(, %<|(, %>(,
   %>>(, or %><( ), an integer overflow can occur in
   pretty.c::format_and_pad_commit() where a size_t is improperly
   stored as an int, and then added as an offset to a subsequent
   memcpy() call.

   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 remote code execution.

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