Git v2.39.4 Release Notes ========================= This addresses the security issues CVE-2024-32002, CVE-2024-32004, CVE-2024-32020 and CVE-2024-32021. This release also backports fixes necessary to let the CI builds pass successfully. Fixes since v2.39.3 ------------------- * CVE-2024-32002: Recursive clones on case-insensitive filesystems that support symbolic links are susceptible to case confusion that can be exploited to execute just-cloned code during the clone operation. * CVE-2024-32004: Repositories can be configured to execute arbitrary code during local clones. To address this, the ownership checks introduced in v2.30.3 are now extended to cover cloning local repositories. * CVE-2024-32020: Local clones may end up hardlinking files into the target repository's object database when source and target repository reside on the same disk. If the source repository is owned by a different user, then those hardlinked files may be rewritten at any point in time by the untrusted user. * CVE-2024-32021: When cloning a local source repository that contains symlinks via the filesystem, Git may create hardlinks to arbitrary user-readable files on the same filesystem as the target repository in the objects/ directory. * CVE-2024-32465: It is supposed to be safe to clone untrusted repositories, even those unpacked from zip archives or tarballs originating from untrusted sources, but Git can be tricked to run arbitrary code as part of the clone. * Defense-in-depth: submodule: require the submodule path to contain directories only. * Defense-in-depth: clone: when symbolic links collide with directories, keep the latter. * Defense-in-depth: clone: prevent hooks from running during a clone. * Defense-in-depth: core.hooksPath: add some protection while cloning. * Defense-in-depth: fsck: warn about symlink pointing inside a gitdir. * Various fix-ups on HTTP tests. * Test update. * HTTP Header redaction code has been adjusted for a newer version of cURL library that shows its traces differently from earlier versions. * Fix was added to work around a regression in libcURL 8.7.0 (which has already been fixed in their tip of the tree). * Replace macos-12 used at GitHub CI with macos-13. * ci(linux-asan/linux-ubsan): let's save some time * Tests with LSan from time to time seem to emit harmless message that makes our tests unnecessarily flakey; we work it around by filtering the uninteresting output. * Update GitHub Actions jobs to avoid warnings against using deprecated version of Node.js.