CVE-2024-24577
libgit2 is vulnerable to arbitrary code execution due to heap corruption in `git_index_add`
libgit2 is a portable C implementation of the Git core methods provided as a linkable library with a solid API, allowing to build Git functionality into your application. Using well-crafted inputs to git_index_add can cause heap corruption that could be leveraged for arbitrary code execution. There is an issue in the has_dir_name function in src/libgit2/index.c, which frees an entry that should not be freed. The freed entry is later used and overwritten with potentially bad actor-controlled data leading to controlled heap corruption. Depending on the application that uses libgit2, this could lead to arbitrary code execution. This issue has been patched in version 1.6.5 and 1.7.2.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- Low
- Availability
- Low
Exploit likelihood
What each source reports
CVE List Score used
8.6
libgit2 is vulnerable to arbitrary code execution due to heap corruption in `git_index_add`
libgit2 is a portable C implementation of the Git core methods provided as a linkable library with a solid API, allowing to build Git functionality into your application. Using well-crafted inputs to git_index_add can cause heap corruption that could be leveraged for arbitrary code execution. There is an issue in the has_dir_name function in src/libgit2/index.c, which frees an entry that should not be freed. The freed entry is later used and overwritten with potentially bad actor-controlled data leading to controlled heap corruption. Depending on the application that uses libgit2, this could lead to arbitrary code execution. This issue has been patched in version 1.6.5 and 1.7.2.
- Record
CVE-2024-24577- CVSS 3.1
- 8.6 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:L - Weakness
- CWE-122
- Updated
- 2026-11-02
EUVDEUVD-2024-21982
8.6
libgit2 is a portable C implementation of the Git core methods provided as a linkable library with a solid API, allowing to build Git functionality into your application. Using well-crafted inputs to git_index_add can cause heap corruption that could be leveraged for arbitrary code execution. There is an issue in the has_dir_name function in src/libgit2/index.c, which frees an entry that should not be freed. The freed entry is later used and overwritten with potentially bad actor-controlled data leading to controlled heap corruption. Depending on the application that uses libgit2, this could lead to arbitrary code execution. This issue has been patched in version 1.6.5 and 1.7.2.
- Record
EUVD-2024-21982- CVSS 3.1
- 8.6 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:L - Updated
- 2026-11-02
NVD
8.6
libgit2 is a portable C implementation of the Git core methods provided as a linkable library with a solid API, allowing to build Git functionality into your application. Using well-crafted inputs to git_index_add can cause heap corruption that could be leveraged for arbitrary code execution. There is an issue in the has_dir_name function in src/libgit2/index.c, which frees an entry that should not be freed. The freed entry is later used and overwritten with potentially bad actor-controlled data leading to controlled heap corruption. Depending on the application that uses libgit2, this could lead to arbitrary code execution. This issue has been patched in version 1.6.5 and 1.7.2.
- Record
CVE-2024-24577- CVSS 3.1
- 8.6 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:L - CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-122, CWE-119
- Updated
- 2026-11-02
OSVALPINE-CVE-2024-24577
9.8
libgit2 is a portable C implementation of the Git core methods provided as a linkable library with a solid API, allowing to build Git functionality into your application. Using well-crafted inputs to git_index_add can cause heap corruption that could be leveraged for arbitrary code execution. There is an issue in the has_dir_name function in src/libgit2/index.c, which frees an entry that should not be freed. The freed entry is later used and overwritten with potentially bad actor-controlled data leading to controlled heap corruption. Depending on the application that uses libgit2, this could lead to arbitrary code execution. This issue has been patched in version 1.6.5 and 1.7.2.
- Record
ALPINE-CVE-2024-24577- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-03
OSVAZL-34274
9.8
CVE-2024-24577 affecting package libgit2 for versions less than 1.6.5-1
libgit2 is a portable C implementation of the Git core methods provided as a linkable library with a solid API, allowing to build Git functionality into your application. Using well-crafted inputs to git_index_add can cause heap corruption that could be leveraged for arbitrary code execution. There is an issue in the has_dir_name function in src/libgit2/index.c, which frees an entry that should not be freed. The freed entry is later used and overwritten with potentially bad actor-controlled data leading to controlled heap corruption. Depending on the application that uses libgit2, this could lead to arbitrary code execution. This issue has been patched in version 1.6.5 and 1.7.2.
- Record
AZL-34274- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVBELL-CVE-2024-24577
9.8
- Record
BELL-CVE-2024-24577- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
Show 25 moreShow less
OSV
8.6
libgit2 is vulnerable to arbitrary code execution due to heap corruption in `git_index_add`
libgit2 is a portable C implementation of the Git core methods provided as a linkable library with a solid API, allowing to build Git functionality into your application. Using well-crafted inputs to git_index_add can cause heap corruption that could be leveraged for arbitrary code execution. There is an issue in the has_dir_name function in src/libgit2/index.c, which frees an entry that should not be freed. The freed entry is later used and overwritten with potentially bad actor-controlled data leading to controlled heap corruption. Depending on the application that uses libgit2, this could lead to arbitrary code execution. This issue has been patched in version 1.6.5 and 1.7.2.
- Record
CVE-2024-24577- CVSS 3.1
- 8.6 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:L - Weakness
- CWE-122
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2024-24577
9.8
libgit2 is a portable C implementation of the Git core methods provided as a linkable library with a solid API, allowing to build Git functionality into your application. Using well-crafted inputs to git_index_add can cause heap corruption that could be leveraged for arbitrary code execution. There is an issue in the has_dir_name function in src/libgit2/index.c, which frees an entry that should not be freed. The freed entry is later used and overwritten with potentially bad actor-controlled data leading to controlled heap corruption. Depending on the application that uses libgit2, this could lead to arbitrary code execution. This issue has been patched in version 1.6.5 and 1.7.2.
- Record
DEBIAN-CVE-2024-24577- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVJLSEC-2025-186
9.8
libgit2 is a portable C implementation of the Git core methods provided as a linkable library with a...
libgit2 is a portable C implementation of the Git core methods provided as a linkable library with a solid API, allowing to build Git functionality into your application. Using well-crafted inputs to git_index_add can cause heap corruption that could be leveraged for arbitrary code execution. There is an issue in the has_dir_name function in src/libgit2/index.c, which frees an entry that should not be freed. The freed entry is later used and overwritten with potentially bad actor-controlled data leading to controlled heap corruption. Depending on the application that uses libgit2, this could lead to arbitrary code execution. This issue has been patched in version 1.6.5 and 1.7.2.
- Record
JLSEC-2025-186- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVOESA-2024-1188
8.6
libgit2 security update
libgit2 is a portable, pure C implementation of the Git core methods provided as a re-entrant linkable library with a solid API, allowing you to write native speed custom Git applications in any language which supports C bindings.
Security Fix(es):
libgit2 is a portable C implementation of the Git core methods provided as a linkable library with a solid API, allowing to build Git functionality into your application. Using well-crafted inputs to git_index_add can cause heap corruption that could be leveraged for arbitrary code execution. There is an issue in the has_dir_name function in src/libgit2/index.c, which frees an entry that should not be freed. The freed entry is later used and overwritten with potentially bad actor-controlled data leading to controlled heap corruption. Depending on the application that uses libgit2, this could lead to arbitrary code execution. This issue has been patched in version 1.6.5 and 1.7.2.(CVE-2024-24577)
- Record
OESA-2024-1188- CVSS 3.1
- 8.6 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:L - Updated
- 2026-11-02
OSVOESA-2024-1201
9.8
rust security update
Rust is a systems programming language focused on three goals:safety, speed,and concurrency.It maintains these goals without having a garbage collector, making it a useful language for a number of use cases other languages are not good at: embedding in other languages, programs with specific space and time requirements,and writing low-level code, like device drivers and operating systems. It improves on current languages targeting this space by having a number of compile-time safety checks that produce no runtime overhead,while eliminating all data races.
Security Fix(es):
libgit2 is a portable C implementation of the Git core methods provided as a linkable library with a solid API, allowing to build Git functionality into your application. Using well-crafted inputs to git_index_add can cause heap corruption that could be leveraged for arbitrary code execution. There is an issue in the has_dir_name function in src/libgit2/index.c, which frees an entry that should not be freed. The freed entry is later used and overwritten with potentially bad actor-controlled data leading to controlled heap corruption. Depending on the application that uses libgit2, this could lead to arbitrary code execution. This issue has been patched in version 1.6.5 and 1.7.2.(CVE-2024-24577)
- Record
OESA-2024-1201- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVOESA-2024-1202
9.8
rust security update
Rust is a systems programming language focused on three goals:safety, speed,and concurrency.It maintains these goals without having a garbage collector, making it a useful language for a number of use cases other languages are not good at: embedding in other languages, programs with specific space and time requirements,and writing low-level code, like device drivers and operating systems. It improves on current languages targeting this space by having a number of compile-time safety checks that produce no runtime overhead,while eliminating all data races.
Security Fix(es):
libgit2 is a portable C implementation of the Git core methods provided as a linkable library with a solid API, allowing to build Git functionality into your application. Using well-crafted inputs to git_revparse_single can cause the function to enter an infinite loop, potentially causing a Denial of Service attack in the calling application. The revparse function in src/libgit2/revparse.c uses a loop to parse the user-provided spec string. There is an edge-case during parsing that allows a bad actor to force the loop conditions to access arbitrary memory. Potentially, this could also leak memory if the extracted rev spec is reflected back to the attacker. As such, libgit2 versions before 1.4.0 are not affected. Users should upgrade to version 1.6.5 or 1.7.2.(CVE-2024-24575)
libgit2 is a portable C implementation of the Git core methods provided as a linkable library with a solid API, allowing to build Git functionality into your application. Using well-crafted inputs to git_index_add can cause heap corruption that could be leveraged for arbitrary code execution. There is an issue in the has_dir_name function in src/libgit2/index.c, which frees an entry that should not be freed. The freed entry is later used and overwritten with potentially bad actor-controlled data leading to controlled heap corruption. Depending on the application that uses libgit2, this could lead to arbitrary code execution. This issue has been patched in version 1.6.5 and 1.7.2.(CVE-2024-24577)
- Record
OESA-2024-1202- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVOESA-2024-1203
9.8
rust security update
Rust is a systems programming language focused on three goals:safety, speed,and concurrency.It maintains these goals without having a garbage collector, making it a useful language for a number of use cases other languages are not good at: embedding in other languages, programs with specific space and time requirements,and writing low-level code, like device drivers and operating systems. It improves on current languages targeting this space by having a number of compile-time safety checks that produce no runtime overhead,while eliminating all data races.
Security Fix(es):
libgit2 is a portable C implementation of the Git core methods provided as a linkable library with a solid API, allowing to build Git functionality into your application. Using well-crafted inputs to git_revparse_single can cause the function to enter an infinite loop, potentially causing a Denial of Service attack in the calling application. The revparse function in src/libgit2/revparse.c uses a loop to parse the user-provided spec string. There is an edge-case during parsing that allows a bad actor to force the loop conditions to access arbitrary memory. Potentially, this could also leak memory if the extracted rev spec is reflected back to the attacker. As such, libgit2 versions before 1.4.0 are not affected. Users should upgrade to version 1.6.5 or 1.7.2.(CVE-2024-24575)
libgit2 is a portable C implementation of the Git core methods provided as a linkable library with a solid API, allowing to build Git functionality into your application. Using well-crafted inputs to git_index_add can cause heap corruption that could be leveraged for arbitrary code execution. There is an issue in the has_dir_name function in src/libgit2/index.c, which frees an entry that should not be freed. The freed entry is later used and overwritten with potentially bad actor-controlled data leading to controlled heap corruption. Depending on the application that uses libgit2, this could lead to arbitrary code execution. This issue has been patched in version 1.6.5 and 1.7.2.(CVE-2024-24577)
- Record
OESA-2024-1203- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVOESA-2024-1204
9.8
rust security update
Rust is a systems programming language focused on three goals:safety, speed,and concurrency.It maintains these goals without having a garbage collector, making it a useful language for a number of use cases other languages are not good at: embedding in other languages, programs with specific space and time requirements,and writing low-level code, like device drivers and operating systems. It improves on current languages targeting this space by having a number of compile-time safety checks that produce no runtime overhead,while eliminating all data races.
Security Fix(es):
libgit2 is a portable C implementation of the Git core methods provided as a linkable library with a solid API, allowing to build Git functionality into your application. Using well-crafted inputs to git_index_add can cause heap corruption that could be leveraged for arbitrary code execution. There is an issue in the has_dir_name function in src/libgit2/index.c, which frees an entry that should not be freed. The freed entry is later used and overwritten with potentially bad actor-controlled data leading to controlled heap corruption. Depending on the application that uses libgit2, this could lead to arbitrary code execution. This issue has been patched in version 1.6.5 and 1.7.2.(CVE-2024-24577)
- Record
OESA-2024-1204- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVOESA-2024-1205
9.8
rust security update
Rust is a systems programming language focused on three goals:safety, speed,and concurrency.It maintains these goals without having a garbage collector, making it a useful language for a number of use cases other languages are not good at: embedding in other languages, programs with specific space and time requirements,and writing low-level code, like device drivers and operating systems. It improves on current languages targeting this space by having a number of compile-time safety checks that produce no runtime overhead,while eliminating all data races.
Security Fix(es):
libgit2 is a portable C implementation of the Git core methods provided as a linkable library with a solid API, allowing to build Git functionality into your application. Using well-crafted inputs to git_index_add can cause heap corruption that could be leveraged for arbitrary code execution. There is an issue in the has_dir_name function in src/libgit2/index.c, which frees an entry that should not be freed. The freed entry is later used and overwritten with potentially bad actor-controlled data leading to controlled heap corruption. Depending on the application that uses libgit2, this could lead to arbitrary code execution. This issue has been patched in version 1.6.5 and 1.7.2.(CVE-2024-24577)
- Record
OESA-2024-1205- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVOESA-2024-1206
9.8
rust security update
Rust is a systems programming language focused on three goals:safety, speed,and concurrency.It maintains these goals without having a garbage collector, making it a useful language for a number of use cases other languages are not good at: embedding in other languages, programs with specific space and time requirements,and writing low-level code, like device drivers and operating systems. It improves on current languages targeting this space by having a number of compile-time safety checks that produce no runtime overhead,while eliminating all data races.
Security Fix(es):
libgit2 is a portable C implementation of the Git core methods provided as a linkable library with a solid API, allowing to build Git functionality into your application. Using well-crafted inputs to git_index_add can cause heap corruption that could be leveraged for arbitrary code execution. There is an issue in the has_dir_name function in src/libgit2/index.c, which frees an entry that should not be freed. The freed entry is later used and overwritten with potentially bad actor-controlled data leading to controlled heap corruption. Depending on the application that uses libgit2, this could lead to arbitrary code execution. This issue has been patched in version 1.6.5 and 1.7.2.(CVE-2024-24577)
- Record
OESA-2024-1206- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVUBUNTU-CVE-2024-24577
8.6
libgit2 is a portable C implementation of the Git core methods provided as a linkable library with a solid API, allowing to build Git functionality into your application. Using well-crafted inputs to git_index_add can cause heap corruption that could be leveraged for arbitrary code execution. There is an issue in the has_dir_name function in src/libgit2/index.c, which frees an entry that should not be freed. The freed entry is later used and overwritten with potentially bad actor-controlled data leading to controlled heap corruption. Depending on the application that uses libgit2, this could lead to arbitrary code execution. This issue has been patched in version 1.6.5 and 1.7.2.
- Record
UBUNTU-CVE-2024-24577- CVSS 3.1
- 8.6 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:L - CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVMGASA-2024-0059 No score
Updated libgit2 packages fix security vulnerabilities
When using an SSH remote with the optional libssh2 backend, libgit2 does
not perform certificate checking by default. (CVE-2023-22742)
Using well-crafted inputs to git_index_add can cause heap corruption
that could be leveraged for arbitrary code execution. (CVE-2024-24577)
- Record
MGASA-2024-0059- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:13661-1 No score
libgit2-1_7-1.7.2-1.1 on GA media
These are all security issues fixed in the libgit2-1_7-1.7.2-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:13661-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:14212-1 No score
git-2.45.2-2.1 on GA media
These are all security issues fixed in the git-2.45.2-2.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:14212-1- Updated
- 2026-11-02
OSVSUSE-SU-2024:2579-1 No score
Security update for git
This update for git fixes the following issues:
- CVE-2024-24577: Fixed arbitrary code execution due to heap corruption in git_index_add (bsc#1219660)
- Record
SUSE-SU-2024:2579-1- Updated
- 2026-11-02
OSVSUSE-SU-2024:2583-1 No score
Security update for libgit2
This update for libgit2 fixes the following issues:
- CVE-2024-24577: Fixed arbitrary code execution due to heap corruption in git_index_add (bsc#1219660)
- Record
SUSE-SU-2024:2583-1- Updated
- 2026-11-02
OSVSUSE-SU-2024:2584-1 No score
Security update for libgit2
This update for libgit2 fixes the following issues:
Update to 1.7.2:
Security fixes:
- CVE-2024-24577: Fixed arbitrary code execution due to heap corruption in git_index_add (bsc#1219660)
- CVE-2024-24575: Fixed potential infinite loop condition in git_revparse_single() (bsc#1219664)
Other fixes:
- A bug in the smart transport negotiation could have caused an out-of-bounds read when a remote server did not advertise capabilities.
- Record
SUSE-SU-2024:2584-1- Updated
- 2026-11-02
OSVSUSE-SU-2024:2592-1 No score
Security update for git
This update for git fixes the following issues:
- CVE-2024-24577: Fixed arbitrary code execution due to heap corruption in git_index_add (bsc#1219660)
- Record
SUSE-SU-2024:2592-1- Updated
- 2026-11-02
OSVSUSE-SU-2024:2598-1 No score
Security update for libgit2
This update for libgit2 fixes the following issues:
- CVE-2024-24577: Fixed arbitrary code execution due to heap corruption in git_index_add (bsc#1219660)
- Record
SUSE-SU-2024:2598-1- Updated
- 2026-11-02
OSVSUSE-SU-2024:2599-1 No score
Security update for git
This update for git fixes the following issues:
- CVE-2024-24577: Fixed arbitrary code execution due to heap corruption in git_index_add (bsc#1219660)
- Record
SUSE-SU-2024:2599-1- Updated
- 2026-11-02
OSVSUSE-SU-2024:2610-1 No score
Security update for libgit2
This update for libgit2 fixes the following issues:
- CVE-2024-24577: Fixed arbitrary code execution due to heap corruption in git_index_add (bsc#1219660)
- Record
SUSE-SU-2024:2610-1- Updated
- 2026-11-02
OSVSUSE-SU-2024:2619-1 No score
Security update for libgit2
This update for libgit2 fixes the following issues:
- CVE-2024-24577: Fixed arbitrary code execution due to heap corruption in git_index_add (bsc#1219660)
- Record
SUSE-SU-2024:2619-1- Updated
- 2026-11-02
OSVSUSE-SU-2024:2656-1 No score
Security update for git
This update for git fixes the following issues:
- CVE-2024-24577: Fixed arbitrary code execution due to heap corruption in git_index_add (bsc#1219660)
- Record
SUSE-SU-2024:2656-1- Updated
- 2026-11-02
OSVSUSE-SU-2025:20721-1 No score
Security update for git
This update for git fixes the following issues:
-
Update to 2.51.0
- UI, Workflows & Features
- Userdiff patterns for the R language have been added.
- Documentation for "git send-email" has been updated with a bit more credential helper and OAuth information.
- "git cat-file --batch" learns to understand %(objectmode) atom to allow the caller to tell missing objects (due to repository corruption) and submodules (whose commit objects are OK to be missing) apart.
- "git diff --no-index dirA dirB" can limit the comparison with pathspec at the end of the command line, just like normal "git diff".
- "git subtree" (in contrib/) learned to grok GPG signing its commits.
- "git whatchanged" that is longer to type than "git log --raw" which is its modern rough equivalent has outlived its usefulness more than 10 years ago. Plan to deprecate and remove it.
- An interchange format for stash entries is defined, and subcommand of "git stash" to import/export has been added.
- "git merge/pull" has been taught the "--compact-summary" option to use the compact-summary format, intead of diffstat, when showing the summary of the incoming changes.
- "git imap-send" has been broken for a long time, which has been resurrected and then taught to talk OAuth2.0 etc.
- Some error messages from "git imap-send" has been updated.
- When "git daemon" sees a signal while attempting to accept() a new client, instead of retrying, it skipped it by mistake, which has been corrected.
- The reftable ref backend has matured enough; Git 3.0 will make it the default format in a newly created repositories by default.
- "netrc" credential helper has been improved to understand textual service names (like smtp) in addition to the numeric port numbers (like 25).
- Lift the limitation to use changed-path filter in "git log" so that it can be used for a pathspec with multiple literal paths.
- Clean up the way how signature on commit objects are exported to and imported from fast-import stream.
- Remove unsupported, unused, and unsupportable old option from "git log".
- Document recently added "git imap-send --list" with an example.
- "git pull" learned to pay attention to pull.autostash configuration variable, which overrides rebase/merge.autostash.
- "git for-each-ref" learns "--start-after" option to help applications that want to page its output.
- "git switch" and "git restore" are declared to be no longer experimental.
- "git -c alias.foo=bar foo -h baz" reported "'foo' is aliased to 'bar'" and then went on to run "git foo -h baz", which was unexpected. Tighten the rule so that alias expansion is reported only when "-h" is the sole option.
- Performance, Internal Implementation, Development Support etc.
- "git pack-objects" learned to find delta bases from blobs at the same path, using the --path-walk API.
- CodingGuidelines update.
- Add settings for Solaris 10 & 11.
- Meson-based build/test framework now understands TAP output generated by our tests.
- "Do not explicitly initialize to zero" rule has been clarified in the CodingGuidelines document.
- A test helper "test_seq" function learned the "-f <fmt>" option, which allowed us to simplify a lot of test scripts.
- A lot of stale stuff has been removed from the contrib/ hierarchy.
- "git push" and "git fetch" are taught to update refs in batches to gain performance.
- Some code paths in "git prune" used to ignore the passed-in
repository object and used the
the_repositorysingleton instance instead, which has been corrected. - Update ".clang-format" and ".editorconfig" to match our style guide a bit better.
- "make coccicheck"…
- UI, Workflows & Features
- Record
SUSE-SU-2025:20721-1- Updated
- 2026-11-02
OSVUSN-6678-1 No score
libgit2 vulnerabilities
It was discovered that libgit2 mishandled equivalent filenames on NTFS partitions. If a user or automated system were tricked into cloning a specially crafted repository, an attacker could possibly use this issue to execute arbitrary code. This issue only affected Ubuntu 16.04 LTS and Ubuntu 18.04 LTS. (CVE-2020-12278, CVE-2020-12279)
It was discovered that libgit2 did not perform certificate checking by default. An attacker could possibly use this issue to perform a machine-in-the-middle attack. This issue only affected Ubuntu 16.04 LTS, Ubuntu 18.04 LTS, Ubuntu 20.04 LTS, and Ubuntu 22.04 LTS. (CVE-2023-22742)
It was discovered that libgit2 could be made to run into an infinite loop. An attacker could possibly use this issue to cause a denial of service. This issue only affected Ubuntu 23.10. (CVE-2024-24575)
It was discovered that libgit2 did not properly manage memory. An attacker could possibly use this issue to cause a denial of service or execute arbitrary code. (CVE-2024-24577)
- Record
USN-6678-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
ezaAlpine:v3.20 |
before 0.18.2-r0 | 0.18.2-r0 |
ezaAlpine:v3.21 |
before 0.18.2-r0 | 0.18.2-r0 |
ezaAlpine:v3.22 |
before 0.18.2-r0 | 0.18.2-r0 |
ezaAlpine:v3.23 |
before 0.18.2-r0 | 0.18.2-r0 |
ezaAlpine:v3.24 |
before 0.18.2-r0 | 0.18.2-r0 |
libgit2Alpine:v3.19 |
1.7.0 up to 1.7.2-r0 | 1.7.2-r0 |
libgit2Alpine:v3.20 |
1.7.0 up to 1.7.2-r0 | 1.7.2-r0 |
libgit2Alpine:v3.21 |
1.7.0 up to 1.7.2-r0 | 1.7.2-r0 |
libgit2Alpine:v3.22 |
1.7.0 up to 1.7.2-r0 | 1.7.2-r0 |
libgit2Alpine:v3.23 |
1.7.0 up to 1.7.2-r0 | 1.7.2-r0 |
Show 77 moreShow less
| Package | Affected | Fixed |
|---|---|---|
libgit2Alpine:v3.24 |
1.7.0 up to 1.7.2-r0 | 1.7.2-r0 |
libgit2Azure Linux:2 |
before 1.6.5-1 | 1.6.5-1 |
libgit2Alpaquita:stream |
1.7.1-r0 up to 1.7.2-r0 | 1.7.2-r0 |
libgit2Debian:12 |
before 1.5.1+ds-1+deb12u1, plus listed versions 1.5.1+ds-1 |
1.5.1+ds-1+deb12u1 |
libgit2Debian:13 |
before 1.7.2+ds-1 | 1.7.2+ds-1 |
libgit2Debian:14 |
before 1.7.2+ds-1 | 1.7.2+ds-1 |
libgit2Debian:10 |
before 0.27.7+dfsg.1-0.2+deb10u2, plus listed versions 0.27.7+dfsg.1-0.20.27.7+dfsg.1-0.2+deb10u1 |
0.27.7+dfsg.1-0.2+deb10u2 |
libgit2Debian:11 |
before 1.1.0+dfsg.1-4+deb11u2, plus listed versions 1.1.0+dfsg.1-41.1.0+dfsg.1-4+deb11u1 |
1.1.0+dfsg.1-4+deb11u2 |
LibGit2_jllJulia |
before 1.7.2+0 | 1.7.2+0 |
libgit2Mageia:9 From an advisory covering 2 CVEs |
before 1.3.2-1.1.mga9 | 1.3.2-1.1.mga9 |
libgit2openEuler:20.03-LTS-SP1 |
before 0.27.8-8.oe1 | 0.27.8-8.oe1 |
libgit2openEuler:20.03-LTS-SP4 |
before 0.27.8-8.oe2003sp4 | 0.27.8-8.oe2003sp4 |
libgit2openEuler:22.03-LTS |
before 1.3.2-3.oe2203sp3 | 1.3.2-3.oe2203sp3 |
libgit2openEuler:22.03-LTS-SP1 |
before 1.3.2-3.oe2203sp1 | 1.3.2-3.oe2203sp1 |
libgit2openEuler:22.03-LTS-SP2 |
before 1.3.2-3.oe2203sp2 | 1.3.2-3.oe2203sp2 |
libgit2openEuler:22.03-LTS-SP3 |
before 1.3.2-3.oe2203sp3 | 1.3.2-3.oe2203sp3 |
rustopenEuler:22.03-LTS-SP1 |
before 1.60.0-3.oe2203sp1 | 1.60.0-3.oe2203sp1 |
rustopenEuler:22.03-LTS-SP2 From an advisory covering 2 CVEs |
before 1.64.0-2.oe2203sp2 | 1.64.0-2.oe2203sp2 |
rustopenEuler:22.03-LTS-SP3 From an advisory covering 2 CVEs |
before 1.64.0-3.oe2203sp3 | 1.64.0-3.oe2203sp3 |
rustopenEuler:20.03-LTS-SP1 |
before 1.51.0-7.oe1 | 1.51.0-7.oe1 |
rustopenEuler:20.03-LTS-SP4 |
before 1.51.0-7.oe2003sp4 | 1.51.0-7.oe2003sp4 |
rustopenEuler:22.03-LTS |
before 1.60.0-3.oe2203 | 1.60.0-3.oe2203 |
gitSUSE:Linux Enterprise Module for Basesystem 15 SP6 |
before 2.43.0-150600.3.6.1 | 2.43.0-150600.3.6.1 |
gitSUSE:Linux Enterprise Module for Development Tools 15 SP6 |
before 2.43.0-150600.3.6.1 | 2.43.0-150600.3.6.1 |
gitopenSUSE:Leap 15.6 |
before 2.43.0-150600.3.6.1 | 2.43.0-150600.3.6.1 |
libgit2SUSE:Linux Enterprise Software Development Kit 12 SP5 |
before 0.24.1-11.5.1 | 0.24.1-11.5.1 |
libgit2SUSE:Linux Enterprise Module for Development Tools 15 SP6 From an advisory covering 2 CVEs |
before 1.7.2-150600.3.3.1 | 1.7.2-150600.3.3.1 |
libgit2openSUSE:Leap 15.6 From an advisory covering 2 CVEs |
before 1.7.2-150600.3.3.1 | 1.7.2-150600.3.3.1 |
gitSUSE:Linux Enterprise Software Development Kit 12 SP5 |
before 2.26.2-27.75.1 | 2.26.2-27.75.1 |
gitSUSE:Linux Enterprise Server 12 SP5 |
before 2.26.2-27.75.1 | 2.26.2-27.75.1 |
gitSUSE:Linux Enterprise Server for SAP Applications 12 SP5 |
before 2.26.2-27.75.1 | 2.26.2-27.75.1 |
libgit2SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS |
before 0.26.8-150000.3.21.1 | 0.26.8-150000.3.21.1 |
libgit2SUSE:Linux Enterprise Server 15 SP2-LTSS |
before 0.26.8-150000.3.21.1 | 0.26.8-150000.3.21.1 |
libgit2SUSE:Linux Enterprise Server for SAP Applications 15 SP2 |
before 0.26.8-150000.3.21.1 | 0.26.8-150000.3.21.1 |
gitSUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS |
before 2.26.2-150000.59.1 | 2.26.2-150000.59.1 |
gitSUSE:Linux Enterprise Server 15 SP2-LTSS |
before 2.26.2-150000.59.1 | 2.26.2-150000.59.1 |
gitSUSE:Linux Enterprise Server for SAP Applications 15 SP2 |
before 2.26.2-150000.59.1 | 2.26.2-150000.59.1 |
libgit2SUSE:Manager Server Module 4.3 |
before 0.28.4-150200.3.9.1 | 0.28.4-150200.3.9.1 |
libgit2SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS |
before 0.28.4-150200.3.9.1 | 0.28.4-150200.3.9.1 |
libgit2SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS |
before 0.28.4-150200.3.9.1 | 0.28.4-150200.3.9.1 |
libgit2SUSE:Linux Enterprise Server 15 SP2-LTSS |
before 0.28.4-150200.3.9.1 | 0.28.4-150200.3.9.1 |
libgit2SUSE:Linux Enterprise Server 15 SP3-LTSS |
before 0.28.4-150200.3.9.1 | 0.28.4-150200.3.9.1 |
libgit2SUSE:Linux Enterprise Server for SAP Applications 15 SP2 |
before 0.28.4-150200.3.9.1 | 0.28.4-150200.3.9.1 |
libgit2SUSE:Linux Enterprise Server for SAP Applications 15 SP3 |
before 0.28.4-150200.3.9.1 | 0.28.4-150200.3.9.1 |
libgit2SUSE:Enterprise Storage 7.1 |
before 0.28.4-150200.3.9.1 | 0.28.4-150200.3.9.1 |
libgit2SUSE:Linux Enterprise Module for Development Tools 15 SP5 |
before 1.3.0-150400.3.9.1 | 1.3.0-150400.3.9.1 |
libgit2SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS |
before 1.3.0-150400.3.9.1 | 1.3.0-150400.3.9.1 |
libgit2SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS |
before 1.3.0-150400.3.9.1 | 1.3.0-150400.3.9.1 |
libgit2SUSE:Linux Enterprise Server 15 SP4-LTSS |
before 1.3.0-150400.3.9.1 | 1.3.0-150400.3.9.1 |
libgit2SUSE:Linux Enterprise Server for SAP Applications 15 SP4 |
before 1.3.0-150400.3.9.1 | 1.3.0-150400.3.9.1 |
libgit2openSUSE:Leap 15.5 |
before 1.3.0-150400.3.9.1 | 1.3.0-150400.3.9.1 |
gitSUSE:Linux Enterprise Micro 5.5 |
before 2.35.3-150300.10.42.1 | 2.35.3-150300.10.42.1 |
gitSUSE:Linux Enterprise Module for Basesystem 15 SP5 |
before 2.35.3-150300.10.42.1 | 2.35.3-150300.10.42.1 |
gitSUSE:Linux Enterprise Module for Development Tools 15 SP5 |
before 2.35.3-150300.10.42.1 | 2.35.3-150300.10.42.1 |
gitSUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS |
before 2.35.3-150300.10.42.1 | 2.35.3-150300.10.42.1 |
gitSUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS |
before 2.35.3-150300.10.42.1 | 2.35.3-150300.10.42.1 |
gitSUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS |
before 2.35.3-150300.10.42.1 | 2.35.3-150300.10.42.1 |
gitSUSE:Linux Enterprise Server 15 SP3-LTSS |
before 2.35.3-150300.10.42.1 | 2.35.3-150300.10.42.1 |
gitSUSE:Linux Enterprise Server 15 SP4-LTSS |
before 2.35.3-150300.10.42.1 | 2.35.3-150300.10.42.1 |
gitSUSE:Linux Enterprise Server for SAP Applications 15 SP3 |
before 2.35.3-150300.10.42.1 | 2.35.3-150300.10.42.1 |
gitSUSE:Linux Enterprise Server for SAP Applications 15 SP4 |
before 2.35.3-150300.10.42.1 | 2.35.3-150300.10.42.1 |
gitSUSE:Manager Proxy 4.3 |
before 2.35.3-150300.10.42.1 | 2.35.3-150300.10.42.1 |
gitSUSE:Manager Server 4.3 |
before 2.35.3-150300.10.42.1 | 2.35.3-150300.10.42.1 |
gitSUSE:Enterprise Storage 7.1 |
before 2.35.3-150300.10.42.1 | 2.35.3-150300.10.42.1 |
gitopenSUSE:Leap Micro 5.5 |
before 2.35.3-150300.10.42.1 | 2.35.3-150300.10.42.1 |
gitopenSUSE:Leap 15.5 |
before 2.35.3-150300.10.42.1 | 2.35.3-150300.10.42.1 |
gitSUSE:Linux Micro 6.0 From an advisory covering 10 CVEs |
before 2.51.0-1.1 | 2.51.0-1.1 |
libgit2Ubuntu:Pro:16.04:LTS |
before 0.24.1-2ubuntu0.2+esm2, plus listed versions 0.22.2-20.23.1-10.24.1-20.24.1-2ubuntu0.20.24.1-2ubuntu0.2+esm1 |
0.24.1-2ubuntu0.2+esm2 |
libgit2Ubuntu:Pro:18.04:LTS |
before 0.26.0+dfsg.1-1.1ubuntu0.2+esm1, plus listed versions 0.25.1+really0.24.6-10.26.0+dfsg.1-1.10.26.0+dfsg.1-1.1build10.26.0+dfsg.1-1.1ubuntu0.2 |
0.26.0+dfsg.1-1.1ubuntu0.2+esm1 |
libgit2Ubuntu:20.04:LTS |
before 0.28.4+dfsg.1-2ubuntu0.1, plus listed versions 0.27.7+dfsg.1-0.2build10.28.3+dfsg.1-10.28.3+dfsg.1-1ubuntu10.28.4+dfsg.1-2 |
0.28.4+dfsg.1-2ubuntu0.1 |
libgit2Ubuntu:22.04:LTS |
before 1.1.0+dfsg.1-4.1ubuntu0.1, plus listed versions 1.1.0+dfsg.1-41.1.0+dfsg.1-4.11.1.0+dfsg.1-4.1build1 |
1.1.0+dfsg.1-4.1ubuntu0.1 |
libgit2Ubuntu:Pro:16.04:LTS From an advisory covering 4 CVEs |
before 0.24.1-2ubuntu0.2+esm2, plus listed versions 0.22.2-20.23.1-10.24.1-20.24.1-2ubuntu0.20.24.1-2ubuntu0.2+esm1 |
0.24.1-2ubuntu0.2+esm2 |
libgit2Ubuntu:Pro:18.04:LTS From an advisory covering 4 CVEs |
before 0.26.0+dfsg.1-1.1ubuntu0.2+esm1, plus listed versions 0.25.1+really0.24.6-10.26.0+dfsg.1-1.10.26.0+dfsg.1-1.1build10.26.0+dfsg.1-1.1ubuntu0.2 |
0.26.0+dfsg.1-1.1ubuntu0.2+esm1 |
libgit2Ubuntu:20.04:LTS From an advisory covering 4 CVEs |
before 0.28.4+dfsg.1-2ubuntu0.1, plus listed versions 0.27.7+dfsg.1-0.2build10.28.3+dfsg.1-10.28.3+dfsg.1-1ubuntu10.28.4+dfsg.1-2 |
0.28.4+dfsg.1-2ubuntu0.1 |
libgit2Ubuntu:22.04:LTS From an advisory covering 4 CVEs |
before 1.1.0+dfsg.1-4.1ubuntu0.1, plus listed versions 1.1.0+dfsg.1-41.1.0+dfsg.1-4.11.1.0+dfsg.1-4.1build1 |
1.1.0+dfsg.1-4.1ubuntu0.1 |
libgit2openSUSE:Tumbleweed From an advisory covering 2 CVEs |
before 1.7.2-1.1 | 1.7.2-1.1 |
gitopenSUSE:Tumbleweed |
before 2.45.2-2.1 | 2.45.2-2.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| affected, aliases, references | OSV | |
| first indexed | CVE List, EUVD, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2024-24577 is a high vulnerability (CVSS 8.6) in Libgit2, published February 6, 2024. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 1.55%, the 75th percentile. Fixed in eza 0.18.2-r0.
References
github.com/libgit2/libgit2/security/advisories/GHSA-j2v7-4f6v-gpg8
github.com/libgit2/libgit2/releases/tag/v1.6.5
github.com/libgit2/libgit2/releases/tag/v1.7.2
lists.fedoraproject.org/archives/list/[email protected]/message/S635BGHHZUMRPI7QOXOJ45QHDD5FFZ3S
lists.fedoraproject.org/archives/list/[email protected]/message/4M3P7WIEPXNRLBINQRJFXUSTNKBCHYC7
lists.fedoraproject.org/archives/list/[email protected]/message/7CNDW3PF6NHO7OXNM5GN6WSSGAMA7MZE
Show 63 moreShow less
lists.fedoraproject.org/archives/list/[email protected]/message/Z6MXOX7I43OWNN7R6M54XLG6U5RXY244
lists.fedoraproject.org/archives/list/[email protected]/message/ZGNHOEE2RBLH7KCJUPUNYG4CDTW4HTBT
lists.debian.org/debian-lts-announce/2024/02/msg00012.html
security.alpinelinux.org/vuln/CVE-2024-24577
nvd.nist.gov/vuln/detail/CVE-2024-24577
docs.bell-sw.com/security/cves/CVE-2024-24577
docs.bell-sw.com/security/advisories/BELL-SA-2024-10
github.com/CVEProject/cvelistV5/tree/main/cves/2024/24xxx/CVE-2024-24577.json
security-tracker.debian.org/tracker/CVE-2024-24577
advisories.mageia.org/MGASA-2024-0059.html
bugs.mageia.org/show_bug.cgi?id=30633
debian.org/lts/security/2023/dla-3340
github.com/libgit2/libgit2/security/advisories/GHSA-8643-3wh5-rmjq
lists.suse.com/pipermail/sle-security-updates/2023-March/014158.html
openeuler.org/en/security/safety-bulletin/detail.html?id=openEuler-SA-2024-1188
openeuler.org/en/security/safety-bulletin/detail.html?id=openEuler-SA-2024-1201
openeuler.org/en/security/safety-bulletin/detail.html?id=openEuler-SA-2024-1202
nvd.nist.gov/vuln/detail/CVE-2024-24575
openeuler.org/en/security/safety-bulletin/detail.html?id=openEuler-SA-2024-1203
openeuler.org/en/security/safety-bulletin/detail.html?id=openEuler-SA-2024-1204
openeuler.org/en/security/safety-bulletin/detail.html?id=openEuler-SA-2024-1205
openeuler.org/en/security/safety-bulletin/detail.html?id=openEuler-SA-2024-1206
suse.com/support/update/announcement/2024/suse-su-20242579-1
bugzilla.suse.com/1219660
suse.com/security/cve/CVE-2024-24577
suse.com/support/update/announcement/2024/suse-su-20242583-1
suse.com/support/update/announcement/2024/suse-su-20242584-1
bugzilla.suse.com/1219664
suse.com/security/cve/CVE-2024-24575
suse.com/support/update/announcement/2024/suse-su-20242592-1
suse.com/support/update/announcement/2024/suse-su-20242598-1
suse.com/support/update/announcement/2024/suse-su-20242599-1
suse.com/support/update/announcement/2024/suse-su-20242610-1
suse.com/support/update/announcement/2024/suse-su-20242619-1
suse.com/support/update/announcement/2024/suse-su-20242656-1
suse.com/support/update/announcement/2025/suse-su-202520721-1
bugzilla.suse.com/1212476
bugzilla.suse.com/1235600
bugzilla.suse.com/1235601
bugzilla.suse.com/1239989
bugzilla.suse.com/1245938
bugzilla.suse.com/1245939
bugzilla.suse.com/1245942
bugzilla.suse.com/1245943
bugzilla.suse.com/1245946
bugzilla.suse.com/1245947
suse.com/security/cve/CVE-2024-50349
suse.com/security/cve/CVE-2024-52006
suse.com/security/cve/CVE-2025-27613
suse.com/security/cve/CVE-2025-27614
suse.com/security/cve/CVE-2025-46334
suse.com/security/cve/CVE-2025-46835
suse.com/security/cve/CVE-2025-48384
suse.com/security/cve/CVE-2025-48385
suse.com/security/cve/CVE-2025-48386
ubuntu.com/security/CVE-2024-24577
ubuntu.com/security/notices/USN-6678-1
cve.org/CVERecord?id=CVE-2024-24577
ubuntu.com/security/CVE-2020-12278
ubuntu.com/security/CVE-2020-12279
ubuntu.com/security/CVE-2023-22742
ubuntu.com/security/CVE-2024-24575
suse.com/security/cve/CVE-2024-24574
Left out here: the rest of 1 source description. The JSON record has them.