Commit Graph

331 Commits

Author SHA1 Message Date
Todd Zullinger
029feecb34 update to 2.39.1 (CVE-2022-41903, CVE-2022-23521)
From the release notes for 2.30.7¹:

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

¹ https://github.com/git/git/raw/v2.39.1/Documentation/RelNotes/2.30.7.txt
2023-01-17 15:13:12 -05:00
Todd Zullinger
66efed4a98 update to 2.39.0
Release notes:
https://github.com/git/git/raw/v2.39.0/Documentation/RelNotes/2.39.0.txt
2022-12-12 13:27:10 -05:00
Todd Zullinger
54729198f5 update to 2.39.0-rc2
Release notes:
https://github.com/git/git/raw/v2.39.0-rc2/Documentation/RelNotes/2.39.0.txt
2022-12-06 01:54:30 -05:00
Todd Zullinger
13887794b7 update to 2.39.0-rc1
Release notes:
https://github.com/git/git/raw/v2.39.0-rc1/Documentation/RelNotes/2.39.0.txt
2022-12-01 15:22:49 -05:00
Todd Zullinger
7d21254b02 update to 2.39.0-rc0
Add mod_http2 BuildRequires for t5559-http-fetch-smart-http2; skip it on
EL7, which lacks it.  Ignore the expected 'missing HTTP2' output from
t5551-http-fetch-smart.  Use a strict pattern to avoid unintended
matches.

Sadly, we must also disable t5559 for now.  It fails very often across
all architectures.  The most common failure is "large fetch-pack
requests can be sent using chunked encoding" (t5559.30), but earlier
tests have also failed.  Until these failures are understood and
resolved, the entire test is disabled globally.  (It's also disabled for
EL-7, which is redundant now but won't be after we re-enable the test
globally in the near future.)

We can't simply skip the mod_http2 dependency here because we set
GIT_TEST_HTTPD=true.  Per upstream 73c49a4474 (t: run t5551 tests with
both HTTP and HTTP/2, 2022-11-11):

    If HTTP/2 isn't supported on a given platform, then t5559 should
    bail during the webserver setup, and gracefully skip all tests
    (unless GIT_TEST_HTTPD has been changed from "auto" to "yes", where
    the point is to complain when webserver setup fails).

Also ignore the 'missing BUILTIN_TXT_$builtin' output which comes from
upstream a0c3244796 (doc SYNOPSIS & -h: use "-" to separate words in
labels, not "_", 2022-10-13).  We may want to loosen this in the future,
but for now ignore it because it doesn't help us identify missing test
dependencies.

Release notes:
https://github.com/git/git/raw/v2.39.0-rc0/Documentation/RelNotes/2.39.0.txt
2022-12-01 15:22:49 -05:00
Todd Zullinger
537938edaa update to 2.38.1 (CVE-2022-39253, CVE-2022-39260)
From the release notes for 2.30.6¹

   * CVE-2022-39253:
     When relying on the `--local` clone optimization, Git dereferences
     symbolic links in the source repository before creating hardlinks
     (or copies) of the dereferenced link in the destination repository.
     This can lead to surprising behavior where arbitrary files are
     present in a repository's `$GIT_DIR` when cloning from a malicious
     repository.

     Git will no longer dereference symbolic links via the `--local`
     clone mechanism, and will instead refuse to clone repositories that
     have symbolic links present in the `$GIT_DIR/objects` directory.

     Additionally, the value of `protocol.file.allow` is changed to be
     "user" by default.

   * CVE-2022-39260:
     An overly-long command string given to `git shell` can result in
     overflow in `split_cmdline()`, leading to arbitrary heap writes and
     remote code execution when `git shell` is exposed and the directory
     `$HOME/git-shell-commands` exists.

     `git shell` is taught to refuse interactive commands that are
     longer than 4MiB in size. `split_cmdline()` is hardened to reject
     inputs larger than 2GiB.

  Credit for finding CVE-2022-39253 goes to Cory Snider of Mirantis. The
  fix was authored by Taylor Blau, with help from Johannes Schindelin.

  Credit for finding CVE-2022-39260 goes to Kevin Backhouse of GitHub.
  The fix was authored by Kevin Backhouse, Jeff King, and Taylor Blau.

¹ https://github.com/git/git/raw/v2.38.1/Documentation/RelNotes/2.30.6.txt
2022-10-18 13:43:15 -04:00
Todd Zullinger
269487c604 update to 2.38.0
Release notes:
https://github.com/git/git/raw/v2.38.0/Documentation/RelNotes/2.38.0.txt
2022-10-03 15:21:28 -04:00
Todd Zullinger
202c5f9f24 update to 2.38.0-rc2
Release notes:
https://github.com/git/git/raw/v2.38.0-rc2/Documentation/RelNotes/2.38.0.txt
2022-09-28 00:18:42 -04:00
Todd Zullinger
35ed577d15 update to 2.38.0-rc1
Release notes:
https://github.com/git/git/raw/v2.38.0-rc1/Documentation/RelNotes/2.38.0.txt
2022-09-21 20:32:41 -04:00
Todd Zullinger
ea59aa3637 update to 2.38.0-rc0
Adjust number of t5541 "push 2000 tags over http" test, which we skip on
aarch64 and ppc64le arches.  It was shifted from 36 to 37 by upstream
b0c4adcdd7 (remote-curl: send Accept-Language header to server,
2022-07-11).

Release notes:
https://github.com/git/git/raw/v2.38.0-rc0/Documentation/RelNotes/2.38.0.txt
2022-09-21 11:42:57 -04:00
Todd Zullinger
c1a92d4bda update to 2.37.3
This is an upstream bugfix release.

Release notes:
https://github.com/git/git/raw/v2.37.3/Documentation/RelNotes/2.37.3.txt
2022-08-30 21:10:12 -04:00
Todd Zullinger
5c57e78875 update to 2.37.2
This is an upstream bugfix release.

Release notes:
https://github.com/git/git/raw/v2.37.2/Documentation/RelNotes/2.37.2.txt
2022-08-11 14:22:53 -04:00
Todd Zullinger
47478b1513 update to 2.37.1 (CVE-2022-29187)
From the release notes for 2.30.5¹:

    This release contains minor fix-ups for the changes that went into
    Git 2.30.3 and 2.30.4, addressing CVE-2022-29187.

     * The safety check that verifies a safe ownership of the Git
       worktree is now extended to also cover the ownership of the Git
       directory (and the `.git` file, if there is any).

    Carlo Marcelo Arenas Belón (1):
          setup: tighten ownership checks post CVE-2022-24765

Additionally, from the release notes for 2.37.1²:

     * Rewrite of "git add -i" in C that appeared in Git 2.25 didn't
       correctly record a removed file to the index, which is an old
       regression but has become widely known because the C version has
       become the default in the latest release.

¹ https://github.com/git/git/raw/v2.37.1/Documentation/RelNotes/2.30.5.txt
² https://github.com/git/git/raw/v2.37.1/Documentation/RelNotes/2.37.1.txt
2022-07-12 13:39:22 -04:00
Todd Zullinger
eab9894931 update to 2.37.0
Release notes:
https://github.com/git/git/raw/v2.37.0/Documentation/RelNotes/2.37.0.txt
2022-06-27 15:07:59 -04:00
Todd Zullinger
8b14c0b19f update to 2.37.0-rc2
Release notes:
https://github.com/git/git/raw/v2.37.0-rc2/Documentation/RelNotes/2.37.0.txt
2022-06-22 15:51:09 -04:00
Todd Zullinger
7d205ab48d update to 2.37.0-rc1
Add 'missing FSMONITOR_DAEMON' and 'You must set env var
GIT_TEST_ALLOW_SUDO=YES in order to run this test' to
git.skip-test-patterns to cover new test prerequisites.

Release notes:
https://github.com/git/git/raw/v2.37.0-rc1/Documentation/RelNotes/2.37.0.txt
2022-06-18 01:59:06 -04:00
Todd Zullinger
81908fa387 update to 2.37.0-rc0
Release notes:
https://github.com/git/git/raw/v2.37.0-rc0/Documentation/RelNotes/2.37.0.txt
2022-06-14 03:16:56 -04:00
Todd Zullinger
b76548f9c2 update to 2.36.1
Release notes:
https://github.com/git/git/raw/v2.36.1/Documentation/RelNotes/2.36.1.txt
2022-05-06 14:01:06 -04:00
Todd Zullinger
dbec023603 update to 2.36.0
Release notes:
https://github.com/git/git/raw/v2.36.0/Documentation/RelNotes/2.36.0.txt
2022-04-18 14:11:02 -04:00
Todd Zullinger
4787e39b40 update to 2.36.0-rc2 (CVE-2022-24765)
Regarding CVE-2022-24765, the release announcement says:

   On multi-user machines, Git users might find themselves
   unexpectedly in a Git worktree, e.g. when another user created a
   repository in `C:\.git`, in a mounted network drive or in a
   scratch space. Merely having a Git-aware prompt that runs `git
   status` (or `git diff`) and navigating to a directory which is
   supposedly not a Git worktree, or opening such a directory in an
   editor or IDE such as VS Code or Atom, will potentially run
   commands defined by that other user.

The new `safe.directory` setting may be used in either the system or
global configuration to list directories which git should consider safe
even if they are owned by someone other than the current user.

Release notes:
https://github.com/git/git/raw/v2.36.0-rc2/Documentation/RelNotes/2.36.0.txt
2022-04-12 21:04:04 -04:00
Todd Zullinger
d1736385d5 update to 2.36.0-rc1
Release notes:
https://github.com/git/git/raw/v2.36.0-rc1/Documentation/RelNotes/2.36.0.txt
2022-04-08 20:01:33 -04:00
Todd Zullinger
0b5afcebda update to 2.36.0-rc0
The %_package_note_file definition added in 1dc07e7 (set path to linker
script in %_package_note_file, 2022-01-24) does not support release
candidates.  Fix it.

Add 'fsmonitor--daemon is not supported on this platform' and 'missing
!REFFILES' to  git.skip-test-patterns to match new test prerequisites
which are not relevant for our builds.

Adjust number of t5541 "push 2000 tags over http" test.  It was shifted
from 35 to 36 by upstream c36c62859a (tests: use "test_hook" for misc
"mkdir -p" and "chmod" cases, 2022-03-17).

Replace `%__make test` with `%__make -C t all` to avoid re-compiling in
%check.  This is an issue I have yet to fully diagnose.  I suspect that
it is related to the nice work Ævar Arnfjörð Bjarmason has done upstream
to improve the efficiency and correctness of the build process.  Work
around it for the moment.

Release notes:
https://github.com/git/git/raw/v2.36.0-rc0/Documentation/RelNotes/2.36.0.txt
2022-04-08 13:40:42 -04:00
Todd Zullinger
9e214cd4d0 update to 2.35.1
Per the upstream release notes¹:

    Git 2.35 shipped with a regression that broke use of "rebase" and
    "stash" in a secondary worktree.  This maintenance release ought to
    fix it.

¹ https://github.com/git/git/raw/v2.35.1/Documentation/RelNotes/2.35.1.txt
2022-01-29 00:20:45 -05:00
Todd Zullinger
4eb061b209 update to 2.35.0
Release notes:
https://github.com/git/git/raw/v2.35.0/Documentation/RelNotes/2.35.0.txt
2022-01-24 15:31:20 -05:00
Todd Zullinger
a8bfca0241 update to 2.35.0-rc2
Release notes:
https://github.com/git/git/raw/v2.35.0-rc2/Documentation/RelNotes/2.35.0.txt
2022-01-19 18:02:12 -05:00
Todd Zullinger
9d7a08be77 update to 2.35.0-rc1
Release notes:
https://github.com/git/git/raw/v2.35.0-rc1/Documentation/RelNotes/2.35.0.txt
2022-01-14 20:04:04 -05:00
Todd Zullinger
ef2bab7f59 update to 2.35.0-rc0
Add openssh-clients BuildRequires, for ssh-add.  Upstream 350a2518c8
(ssh signing: support non ssh-* keytypes, 2021-11-19), added `ssh-add`
as a requirement of t7528-signed-commit-ssh's "sign commits using
literal public keys with ssh-agent" test.

Replace the openssh BR added in e8896ce (update to 2.34.0, 2021-11-15)
with openssh-clients.  The latter requires the former.

Apply Taylor Blau's patch to fix a use-after-free bug in fmt-merge-msg¹.

Add `missing !LONG_IS_64BIT,EXPENSIVE` to git.skip-test-patterns.  It is
used in t1051-large-conversion after upstream 596b5e77c9 (clean/smudge:
allow clean filters to process extremely large files, 2021-11-02).

Release notes:
https://github.com/git/git/raw/v2.35.0-rc0/Documentation/RelNotes/2.35.0.txt

¹ https://lore.kernel.org/git/CAHk-=whXPxWL7z3GiPkaDt+yygrRmagrYUnib7Lx=Vvrqx2ufg@mail.gmail.com/
2022-01-10 22:14:13 -05:00
Todd Zullinger
7453454dad update to 2.34.1
Release notes:
https://github.com/git/git/raw/v2.34.1/Documentation/RelNotes/2.34.1.txt
2021-11-25 00:42:31 -05:00
Todd Zullinger
e8896ce365 update to 2.34.0
Release notes:
https://github.com/git/git/raw/v2.34.0/Documentation/RelNotes/2.34.0.txt

Add `BuildRequires: openssh` for the `ssh-keygen` command; it is needed
to test the newly-added ssh signing support¹.  Refer to the `gpg.format`
and `gpg.ssh.*` variables in git-config(1) for details.

[Unfortunately, openssh-8.7 has a bug in the requisite `ssh-keygen -Y
find-principals` command, which will limit the usefulness of this
feature on Fedora 35/36 until openssh is either rebased to 8.8 or the
patch² is backported.  The git testsuite has been taught to skip the
tests when this bug is present, in upstream ca7a5bf4bd (t/lib-gpg: avoid
broken versions of ssh-keygen, 2021-11-10), but that won't help users
who try out this new feature.  Hopefully we can get openssh-8.7 in
Fedora 35 & 36 patched or updated before too long.]

We have `Requires: openssh-clients` in git-core already.  The
openssh-clients package requires openssh so we don't _need_ to add an
install-time requirement to ensure the `ssh-keygen` command is
available.

Ignore RUNTIME_PREFIX and SYMLINKS_WINDOWS test prerequisites when
looking for missing test suite BuildRequires³.

The RUNTIME_PREFIX prerequisite was added in b7d11a0f5d (tests: exercise
the RUNTIME_PREFIX feature, 2021-07-24)⁴.  It is used to build binaries
which can be easily relocated, which we don't need in our builds.

The SYMLINKS_WINDOWS prerequisite was added in 3e7d4888e5 (mingw: align
symlinks-related rmdir() behavior with Linux, 2021-08-02)⁵.  It is, as
the name implies, Windows-specific.

¹ https://github.com/git/git/commit/b5726a5d9c (ssh signing: preliminary
  refactoring and clean-up, 2021-09-10) and the commits which follow.
² https://github.com/openssh/openssh-portable/commit/ca0e455b93,
  https://github.com/openssh/openssh-portable/commit/4afe431da9, and
  https://www.mail-archive.com/source-changes@openbsd.org/msg127496.html
  (plus the replies, which point out the typo in the first patch)
³ fa92661 (Add grep patterns for checking skipped tests, 2019-02-02)
⁴ https://github.com/git/git/commit/b7d11a0f5dhttps://github.com/git/git/commit/3e7d4888e5
2021-11-24 23:23:19 -05:00
Todd Zullinger
5507b1a187 update to 2.33.1
Release notes:
https://github.com/git/git/raw/v2.33.1/Documentation/RelNotes/2.33.1.txt
2021-10-12 23:30:43 -04:00
Ondřej Pohořelský
f291bcfd27 update to 2.33.0
contrib/hooks/multimail is no longer distributed with git

The multimail hook was removed from the git contrib tree.  From the
upstream commit f74d11471f (multimail: stop shipping a copy,
2021-06-10):

The multimail project is developed independently and has its own project
page. Traditionally, we shipped a copy in contrib/.
However, such a copy is prone to become stale, and users are much better
served to be directed to the actual project instead.
2021-10-05 17:54:36 +02:00
Todd Zullinger
c2eba54e84 update to 2.32.0
Release notes:
https://github.com/git/git/raw/v2.32.0/Documentation/RelNotes/2.32.0.txt
2021-06-06 11:34:56 -04:00
Todd Zullinger
c052174f85 update to 2.32.0-rc3
Release notes:
https://github.com/git/git/raw/v2.32.0-rc3/Documentation/RelNotes/2.32.0.txt
2021-06-02 11:06:13 -04:00
Todd Zullinger
02138d4e5c update to 2.32.0-rc2
Release notes:
https://github.com/git/git/raw/v2.32.0-rc2/Documentation/RelNotes/2.32.0.txt
2021-05-28 10:27:29 -04:00
Todd Zullinger
0f6131b58c update to 2.32.0-rc1
Release notes:
https://github.com/git/git/raw/v2.32.0-rc1/Documentation/RelNotes/2.32.0.txt
2021-05-22 10:16:34 -04:00
Todd Zullinger
e67c091cc6 update to 2.32.0-rc0
Release notes:
https://github.com/git/git/raw/v2.32.0-rc0/Documentation/RelNotes/2.32.0.txt
2021-05-21 20:04:15 -04:00
Todd Zullinger
e4b60c52ef update to 2.31.1
Release notes:
https://github.com/git/git/raw/v2.31.1/Documentation/RelNotes/2.31.1.txt
2021-03-27 00:20:43 -04:00
Todd Zullinger
ce53345a7d update to 2.31.0
Release notes:
https://github.com/git/git/raw/v2.31.0/Documentation/RelNotes/2.31.0.txt
2021-03-15 16:04:01 -04:00
Todd Zullinger
cb2e458a19 update to 2.31.0-rc2
This release includes a fix for CVE-2021-21300¹ in addition to the other
changes along the path to the final 2.31.0 release.

Release notes:
https://github.com/git/git/raw/v2.31.0-rc2/Documentation/RelNotes/2.31.0.txt

¹ Per the 2.17.6 release notes on CVE-2021-21300:
    On case-insensitive file systems with support for symbolic links, if
    Git is configured globally to apply delay-capable clean/smudge
    filters (such as Git LFS), Git could be fooled into running remote
    code during a clone.
2021-03-09 14:06:01 -05:00
Todd Zullinger
91eeb42936 update to 2.31.0-rc1
Release notes:
https://github.com/git/git/raw/v2.31.0-rc1/Documentation/RelNotes/2.31.0.txt
2021-03-03 10:22:27 -05:00
Todd Zullinger
adc702ecfc update to 2.31.0-rc0
Release notes:
https://github.com/git/git/raw/v2.31.0-rc0/Documentation/RelNotes/2.31.0.txt
2021-03-03 10:21:08 -05:00
Todd Zullinger
0cb8e1a378 update to 2.30.1
Release notes:
https://github.com/git/git/raw/v2.30.1/Documentation/RelNotes/2.30.1.txt
2021-02-08 22:06:18 -05:00
Todd Zullinger
c93103f5ad update to 2.30.0
Release notes:
https://github.com/git/git/raw/v2.30.0/Documentation/RelNotes/2.30.0.txt
2020-12-28 15:02:16 -05:00
Todd Zullinger
8fef3782c3 update to 2.30.0-rc2
Release notes:
https://github.com/git/git/raw/v2.30.0-rc2/Documentation/RelNotes/2.30.0.txt
2020-12-23 19:01:29 -05:00
Todd Zullinger
9e220daf74 update to 2.30.0-rc1
Release notes:
https://github.com/git/git/raw/v2.30.0-rc1/Documentation/RelNotes/2.30.0.txt
2020-12-18 23:40:05 -05:00
Todd Zullinger
528c7a0575 update to 2.30.0-rc0
Release notes:
https://github.com/git/git/raw/v2.30.0-rc0/Documentation/RelNotes/2.30.0.txt
2020-12-14 15:09:47 -05:00
Todd Zullinger
8fc9bc0302 update to 2.29.2
Quoting the release notes:

   In 2.29, "--committer-date-is-author-date" option of "rebase" and
   "am" subcommands lost the e-mail address by mistake, which has been
   corrected.

Release notes:
https://github.com/git/git/raw/v2.29.2/Documentation/RelNotes/2.29.2.txt
2020-10-29 18:45:12 -04:00
Todd Zullinger
f3a190b8da update to 2.29.1
The update to 2.29.1 is pointless on its own¹, but a subsequent commit
will add some additional post-release fixes for 2.29.  Once we're
pushing an update, we might as well pick up the latest point release to
avoid anyone wondering why we've skipped an update.

Release notes:
https://github.com/git/git/raw/v2.29.1/Documentation/RelNotes/2.29.1.txt

¹ The only change in 2.29.1 is a Makefile fix for users of the
  non-default SKIP_DASHED_BUILT_INS installation option.
2020-10-24 22:18:37 -04:00
Todd Zullinger
08f0612fd8 update to 2.29.0
Release notes:
https://github.com/git/git/raw/v2.29.0/Documentation/RelNotes/2.29.0.txt
2020-10-19 22:43:16 -04:00
Todd Zullinger
126d6526c9 update to 2.29.0-rc2
Release notes:
https://github.com/git/git/raw/v2.29.0-rc2/Documentation/RelNotes/2.29.0.txt
2020-10-15 16:56:50 -04:00