Every CVE Search/ Get API key

CVE-2024-24577

libgit2 is vulnerable to arbitrary code execution due to heap corruption in `git_index_add`

8.6 HighFix available

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

1.55%Up 1.5 points since Feb 8, 2024
90%50%10%1%

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 HighCVSS: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 HighCVSS: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 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:L
CVSS 3.1
9.8 CriticalCVSS: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 CriticalCVSS: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 CriticalCVSS: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 CriticalCVSS: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 HighCVSS: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 CriticalCVSS: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 CriticalCVSS: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 HighCVSS: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 CriticalCVSS: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 CriticalCVSS: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 CriticalCVSS: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 CriticalCVSS: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 CriticalCVSS: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 CriticalCVSS: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 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:L
CVSS 3.1
9.8 CriticalCVSS: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_repository singleton instance instead, which has been corrected.
      • Update ".clang-format" and ".editorconfig" to match our style guide a bit better.
      • "make coccicheck"…
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

Affected packages
PackageAffectedFixed
eza
Alpine:v3.20
before 0.18.2-r0
0.18.2-r0
eza
Alpine:v3.21
before 0.18.2-r0
0.18.2-r0
eza
Alpine:v3.22
before 0.18.2-r0
0.18.2-r0
eza
Alpine:v3.23
before 0.18.2-r0
0.18.2-r0
eza
Alpine:v3.24
before 0.18.2-r0
0.18.2-r0
libgit2
Alpine:v3.19
1.7.0 up to 1.7.2-r0
1.7.2-r0
libgit2
Alpine:v3.20
1.7.0 up to 1.7.2-r0
1.7.2-r0
libgit2
Alpine:v3.21
1.7.0 up to 1.7.2-r0
1.7.2-r0
libgit2
Alpine:v3.22
1.7.0 up to 1.7.2-r0
1.7.2-r0
libgit2
Alpine:v3.23
1.7.0 up to 1.7.2-r0
1.7.2-r0
Show 77 moreShow less
Affected packages
PackageAffectedFixed
libgit2
Alpine:v3.24
1.7.0 up to 1.7.2-r0
1.7.2-r0
libgit2
Azure Linux:2
before 1.6.5-1
1.6.5-1
libgit2
Alpaquita:stream
1.7.1-r0 up to 1.7.2-r0
1.7.2-r0
libgit2
Debian:12
before 1.5.1+ds-1+deb12u1, plus listed versions
1.5.1+ds-1
1.5.1+ds-1+deb12u1
libgit2
Debian:13
before 1.7.2+ds-1
1.7.2+ds-1
libgit2
Debian:14
before 1.7.2+ds-1
1.7.2+ds-1
libgit2
Debian: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
libgit2
Debian: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_jll
Julia
before 1.7.2+0
1.7.2+0
libgit2
Mageia:9
From an advisory covering 2 CVEs
before 1.3.2-1.1.mga9
1.3.2-1.1.mga9
libgit2
openEuler:20.03-LTS-SP1
before 0.27.8-8.oe1
0.27.8-8.oe1
libgit2
openEuler:20.03-LTS-SP4
before 0.27.8-8.oe2003sp4
0.27.8-8.oe2003sp4
libgit2
openEuler:22.03-LTS
before 1.3.2-3.oe2203sp3
1.3.2-3.oe2203sp3
libgit2
openEuler:22.03-LTS-SP1
before 1.3.2-3.oe2203sp1
1.3.2-3.oe2203sp1
libgit2
openEuler:22.03-LTS-SP2
before 1.3.2-3.oe2203sp2
1.3.2-3.oe2203sp2
libgit2
openEuler:22.03-LTS-SP3
before 1.3.2-3.oe2203sp3
1.3.2-3.oe2203sp3
rust
openEuler:22.03-LTS-SP1
before 1.60.0-3.oe2203sp1
1.60.0-3.oe2203sp1
rust
openEuler:22.03-LTS-SP2
From an advisory covering 2 CVEs
before 1.64.0-2.oe2203sp2
1.64.0-2.oe2203sp2
rust
openEuler:22.03-LTS-SP3
From an advisory covering 2 CVEs
before 1.64.0-3.oe2203sp3
1.64.0-3.oe2203sp3
rust
openEuler:20.03-LTS-SP1
before 1.51.0-7.oe1
1.51.0-7.oe1
rust
openEuler:20.03-LTS-SP4
before 1.51.0-7.oe2003sp4
1.51.0-7.oe2003sp4
rust
openEuler:22.03-LTS
before 1.60.0-3.oe2203
1.60.0-3.oe2203
git
SUSE:Linux Enterprise Module for Basesystem 15 SP6
before 2.43.0-150600.3.6.1
2.43.0-150600.3.6.1
git
SUSE:Linux Enterprise Module for Development Tools 15 SP6
before 2.43.0-150600.3.6.1
2.43.0-150600.3.6.1
git
openSUSE:Leap 15.6
before 2.43.0-150600.3.6.1
2.43.0-150600.3.6.1
libgit2
SUSE:Linux Enterprise Software Development Kit 12 SP5
before 0.24.1-11.5.1
0.24.1-11.5.1
libgit2
SUSE: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
libgit2
openSUSE:Leap 15.6
From an advisory covering 2 CVEs
before 1.7.2-150600.3.3.1
1.7.2-150600.3.3.1
git
SUSE:Linux Enterprise Software Development Kit 12 SP5
before 2.26.2-27.75.1
2.26.2-27.75.1
git
SUSE:Linux Enterprise Server 12 SP5
before 2.26.2-27.75.1
2.26.2-27.75.1
git
SUSE:Linux Enterprise Server for SAP Applications 12 SP5
before 2.26.2-27.75.1
2.26.2-27.75.1
libgit2
SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS
before 0.26.8-150000.3.21.1
0.26.8-150000.3.21.1
libgit2
SUSE:Linux Enterprise Server 15 SP2-LTSS
before 0.26.8-150000.3.21.1
0.26.8-150000.3.21.1
libgit2
SUSE:Linux Enterprise Server for SAP Applications 15 SP2
before 0.26.8-150000.3.21.1
0.26.8-150000.3.21.1
git
SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS
before 2.26.2-150000.59.1
2.26.2-150000.59.1
git
SUSE:Linux Enterprise Server 15 SP2-LTSS
before 2.26.2-150000.59.1
2.26.2-150000.59.1
git
SUSE:Linux Enterprise Server for SAP Applications 15 SP2
before 2.26.2-150000.59.1
2.26.2-150000.59.1
libgit2
SUSE:Manager Server Module 4.3
before 0.28.4-150200.3.9.1
0.28.4-150200.3.9.1
libgit2
SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS
before 0.28.4-150200.3.9.1
0.28.4-150200.3.9.1
libgit2
SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS
before 0.28.4-150200.3.9.1
0.28.4-150200.3.9.1
libgit2
SUSE:Linux Enterprise Server 15 SP2-LTSS
before 0.28.4-150200.3.9.1
0.28.4-150200.3.9.1
libgit2
SUSE:Linux Enterprise Server 15 SP3-LTSS
before 0.28.4-150200.3.9.1
0.28.4-150200.3.9.1
libgit2
SUSE:Linux Enterprise Server for SAP Applications 15 SP2
before 0.28.4-150200.3.9.1
0.28.4-150200.3.9.1
libgit2
SUSE:Linux Enterprise Server for SAP Applications 15 SP3
before 0.28.4-150200.3.9.1
0.28.4-150200.3.9.1
libgit2
SUSE:Enterprise Storage 7.1
before 0.28.4-150200.3.9.1
0.28.4-150200.3.9.1
libgit2
SUSE:Linux Enterprise Module for Development Tools 15 SP5
before 1.3.0-150400.3.9.1
1.3.0-150400.3.9.1
libgit2
SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS
before 1.3.0-150400.3.9.1
1.3.0-150400.3.9.1
libgit2
SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS
before 1.3.0-150400.3.9.1
1.3.0-150400.3.9.1
libgit2
SUSE:Linux Enterprise Server 15 SP4-LTSS
before 1.3.0-150400.3.9.1
1.3.0-150400.3.9.1
libgit2
SUSE:Linux Enterprise Server for SAP Applications 15 SP4
before 1.3.0-150400.3.9.1
1.3.0-150400.3.9.1
libgit2
openSUSE:Leap 15.5
before 1.3.0-150400.3.9.1
1.3.0-150400.3.9.1
git
SUSE:Linux Enterprise Micro 5.5
before 2.35.3-150300.10.42.1
2.35.3-150300.10.42.1
git
SUSE:Linux Enterprise Module for Basesystem 15 SP5
before 2.35.3-150300.10.42.1
2.35.3-150300.10.42.1
git
SUSE:Linux Enterprise Module for Development Tools 15 SP5
before 2.35.3-150300.10.42.1
2.35.3-150300.10.42.1
git
SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS
before 2.35.3-150300.10.42.1
2.35.3-150300.10.42.1
git
SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS
before 2.35.3-150300.10.42.1
2.35.3-150300.10.42.1
git
SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS
before 2.35.3-150300.10.42.1
2.35.3-150300.10.42.1
git
SUSE:Linux Enterprise Server 15 SP3-LTSS
before 2.35.3-150300.10.42.1
2.35.3-150300.10.42.1
git
SUSE:Linux Enterprise Server 15 SP4-LTSS
before 2.35.3-150300.10.42.1
2.35.3-150300.10.42.1
git
SUSE:Linux Enterprise Server for SAP Applications 15 SP3
before 2.35.3-150300.10.42.1
2.35.3-150300.10.42.1
git
SUSE:Linux Enterprise Server for SAP Applications 15 SP4
before 2.35.3-150300.10.42.1
2.35.3-150300.10.42.1
git
SUSE:Manager Proxy 4.3
before 2.35.3-150300.10.42.1
2.35.3-150300.10.42.1
git
SUSE:Manager Server 4.3
before 2.35.3-150300.10.42.1
2.35.3-150300.10.42.1
git
SUSE:Enterprise Storage 7.1
before 2.35.3-150300.10.42.1
2.35.3-150300.10.42.1
git
openSUSE:Leap Micro 5.5
before 2.35.3-150300.10.42.1
2.35.3-150300.10.42.1
git
openSUSE:Leap 15.5
before 2.35.3-150300.10.42.1
2.35.3-150300.10.42.1
git
SUSE:Linux Micro 6.0
From an advisory covering 10 CVEs
before 2.51.0-1.1
2.51.0-1.1
libgit2
Ubuntu: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
libgit2
Ubuntu: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
libgit2
Ubuntu: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
libgit2
Ubuntu: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
libgit2
Ubuntu: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
libgit2
Ubuntu: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
libgit2
Ubuntu: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
libgit2
Ubuntu: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
libgit2
openSUSE:Tumbleweed
From an advisory covering 2 CVEs
before 1.7.2-1.1
1.7.2-1.1
git
openSUSE:Tumbleweed
before 2.45.2-2.1
2.45.2-2.1

History

History
RecordedChangedSources
affected, facts
affected, aliases, referencesOSV
first indexedCVE 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

Show 63 moreShow less
This page doesn't list everything

Left out here: the rest of 1 source description. The JSON record has them.

MoveEnter Open