forked from git/git
-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This PR takes the embargoed release tag `v2.39.1.windows.1` and merges it into the `main` branch. It likely that I messed something up in the order of releasing the security release and merging the [security advisory](GHSA-v4px-mx59-w99c).
- Loading branch information
Showing
25 changed files
with
586 additions
and
127 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,86 @@ | ||
Git v2.30.7 Release Notes | ||
========================= | ||
|
||
This release addresses the security issues CVE-2022-41903 and | ||
CVE-2022-23521. | ||
|
||
|
||
Fixes since v2.30.6 | ||
------------------- | ||
|
||
* 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. | ||
|
||
Credit for finding CVE-2022-41903 goes to Joern Schneeweisz of GitLab. | ||
An initial fix was authored by Markus Vervier of X41 D-Sec. Credit for | ||
finding CVE-2022-23521 goes to Markus Vervier and Eric Sesterhenn of X41 | ||
D-Sec. This work was sponsored by OSTIF. | ||
|
||
The proposed fixes have been polished and extended to cover additional | ||
findings by Patrick Steinhardt of GitLab, with help from others on the | ||
Git security mailing list. | ||
|
||
Patrick Steinhardt (21): | ||
attr: fix overflow when upserting attribute with overly long name | ||
attr: fix out-of-bounds read with huge attribute names | ||
attr: fix integer overflow when parsing huge attribute names | ||
attr: fix out-of-bounds write when parsing huge number of attributes | ||
attr: fix out-of-bounds read with unreasonable amount of patterns | ||
attr: fix integer overflow with more than INT_MAX macros | ||
attr: harden allocation against integer overflows | ||
attr: fix silently splitting up lines longer than 2048 bytes | ||
attr: ignore attribute lines exceeding 2048 bytes | ||
attr: ignore overly large gitattributes files | ||
pretty: fix out-of-bounds write caused by integer overflow | ||
pretty: fix out-of-bounds read when left-flushing with stealing | ||
pretty: fix out-of-bounds read when parsing invalid padding format | ||
pretty: fix adding linefeed when placeholder is not expanded | ||
pretty: fix integer overflow in wrapping format | ||
utf8: fix truncated string lengths in `utf8_strnwidth()` | ||
utf8: fix returning negative string width | ||
utf8: fix overflow when returning string width | ||
utf8: fix checking for glyph width in `strbuf_utf8_replace()` | ||
utf8: refactor `strbuf_utf8_replace` to not rely on preallocated buffer | ||
pretty: restrict input lengths for padding and wrapping formats | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
Git v2.31.6 Release Notes | ||
========================= | ||
|
||
This release merges the security fix that appears in v2.30.7; see | ||
the release notes for that version for details. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
Git v2.32.5 Release Notes | ||
========================= | ||
|
||
This release merges the security fix that appears in v2.30.7; see | ||
the release notes for that version for details. | ||
|
||
In addition, included are additional code for "git fsck" to check | ||
for questionable .gitattributes files. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
Git v2.33.6 Release Notes | ||
========================= | ||
|
||
This release merges the security fix that appears in v2.30.7; see | ||
the release notes for that version for details. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
Git v2.34.6 Release Notes | ||
========================= | ||
|
||
This release merges the security fix that appears in v2.30.7; see | ||
the release notes for that version for details. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
Git v2.35.6 Release Notes | ||
========================= | ||
|
||
This release merges the security fix that appears in v2.30.7; see | ||
the release notes for that version for details. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
Git v2.36.4 Release Notes | ||
========================= | ||
|
||
This release merges the security fix that appears in v2.30.7; see | ||
the release notes for that version for details. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
Git v2.37.5 Release Notes | ||
========================= | ||
|
||
This release merges the security fix that appears in v2.30.7; see | ||
the release notes for that version for details. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
Git v2.38.3 Release Notes | ||
========================= | ||
|
||
This release merges the security fix that appears in v2.30.7; see | ||
the release notes for that version for details. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
Git v2.39.1 Release Notes | ||
========================= | ||
|
||
This release merges the security fix that appears in v2.30.7; see | ||
the release notes for that version for details. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,7 @@ | ||
#!/bin/sh | ||
|
||
GVF=GIT-VERSION-FILE | ||
DEF_VER=v2.39.0 | ||
DEF_VER=v2.39.1 | ||
|
||
LF=' | ||
' | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
Documentation/RelNotes/2.39.0.txt | ||
Documentation/RelNotes/2.39.1.txt |
Oops, something went wrong.