CVE-2024-32465
Git's protections for cloning untrusted repositories can be bypassed
In short
Git's safety features that are supposed to protect you when cloning untrusted repositories can be bypassed, allowing malicious code to run on your computer. This is especially dangerous when you download a Git repository as a ZIP file from an untrusted source, as hidden hooks can execute without your knowledge.
Technical detail
Path traversal and hook execution vulnerabilities in Git's repository initialization bypass protections designed to safely clone untrusted local repositories. An attacker can craft a malicious Git repository archive (e.g., ZIP file) with specially configured hooks that execute during clone operations, circumventing safety checks in versions prior to 2.45.1, 2.44.1, 2.43.4, 2.42.2, 2.41.1, 2.40.2, and 2.39.4. Mitigation requires updating to patched versions or avoiding Git operations on repositories from untrusted archive sources.
Summary generated and translated by AI from the official description.
Git is a revision control system. The Git project recommends to avoid working in untrusted repositories, and instead to clone it first with `git clone --no-local` to obtain a clean copy. Git has specific protections to make that a safe operation even with an untrusted source repository, but vulnerabilities allow those protections to be bypassed. In the context of cloning local repositories owned by other users, this vulnerability has been covered in CVE-2024-32004. But there are circumstances where the fixes for CVE-2024-32004 are not enough: For example, when obtaining a `.zip` file containing a full copy of a Git repository, it should not be trusted by default to be safe, as e.g. hooks could be configured to run within the context of that repository. The problem has been patched in versions 2.45.1, 2.44.1, 2.43.4, 2.42.2, 2.41.1, 2.40.2, and 2.39.4. As a workaround, avoid using Git in repositories that have been obtained via archives from untrusted sources.
CVSS:3.1/AV:P/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H