Infinite loop in libgit2 - CVE-2024-24575

 

Infinite loop in libgit2 - CVE-2024-24575

Published: February 7, 2024


Vulnerability identifier: #VU86202
CSH Severity: Medium
CVSS v4: 8.7 [CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N]
CVE-ID: CVE-2024-24575
CWE-ID: CWE-835
Exploitation vector: Remote access
Exploit availability: No public exploit available

Vulnerability details

The vulnerability allows a remote attacker to perform a denial of service (DoS) attack.

The vulnerability exists due to infinite loop in git_revparse_single within the revparse() function in src/libgit2/revparse.c. A remote attacker can consume all available system resources and cause denial of service conditions.


Affected software

libgit2
Amazon Linux AMI
Debian Linux
SUSE Linux Enterprise Real Time 15
SUSE Linux Enterprise Server for SAP Applications 15
SUSE Linux Enterprise Server 15
SUSE Linux Enterprise Desktop 15
Fedora
Development Tools Module
openSUSE Leap
Ubuntu
openEuler
Anolis OS
libgit2-26 (Ubuntu package)
libgit2-24 (Ubuntu package)
rust-pore
rust-strip-ansi-escapes
rust-ansitok
rust-pretty-git-prompt
rust-git-absorb
rust-shadow-rs
rust-cargo-c
rust-vte
rust-vt100
rust-libgit2-sys
rust-git-delta
rust-eza
rust-git2
rust-bat
rust-asyncgit
rust-gitui
libgit2-28 (Ubuntu package)
rust-lsd
libgit2-1.1 (Ubuntu package)
libgit2 (Debian package)
libgit2-1.5 (Ubuntu package)
libgit2
libgit2_1.6
libgit2-devel
libgit2-tools
libgit2-1_7-debuginfo
libgit2-debuginfo
libgit2-debugsource
libgit2-tools-debuginfo
libgit2-1_7
python-pygit2
rust-help
rust-src
rust-lldb
rust-debugger-common
rust-gdb
rust-debugsource
rust-debuginfo
clippy
rls
rust-analyzer
cargo
rustfmt
rust-std-static
rust-analysis
rust
rust-silver
rust-vergen
rust-tokei

How to mitigate CVE-2024-24575

Install updates from vendor's website.

libgit2 - addressed in versions 1.6.5, 1.7.2
libgit2-26 (Ubuntu package) - update to Ubuntu Pro
libgit2-24 (Ubuntu package) - update to Ubuntu Pro
rust-pore - addressed in versions 0.1.10-3.el9, 0.1.10-3.fc38, 0.1.10-3.fc39, 0.1.10-3.fc40, 0.1.10-3.fc41
rust-strip-ansi-escapes - update to 0.2.0-2.el9
rust-ansitok - update to 0.2.0-4.el9
rust-pretty-git-prompt - addressed in versions 0.2.1-20.fc38, 0.2.1-20.fc39, 0.2.1-20.fc40, 0.2.1-20.fc41
rust-git-absorb - addressed in versions 0.6.11-3.fc38, 0.6.11-3.fc39, 0.6.11-3.fc40, 0.6.11-3.fc41
rust-shadow-rs - addressed in versions 0.8.1-8.el9, 0.8.1-8.fc38, 0.8.1-8.fc39, 0.8.1-8.fc40, 0.8.1-8.fc41
rust-cargo-c - addressed in versions 0.9.27-4.el9, 0.9.28-4.fc38, 0.9.28-4.fc39, 0.9.28-4.fc40, 0.9.28-4.fc41
rust-vte - update to 0.13.0-1.el9
rust-vt100 - update to 0.15.2-2.el9
rust-libgit2-sys - addressed in versions 0.16.2-1.el9, 0.16.2-1.fc38, 0.16.2-1.fc39, 0.16.2-1.fc40, 0.16.2-1.fc41
rust-git-delta - addressed in versions 0.16.5-9.el9, 0.16.5-9.fc38, 0.16.5-9.fc39, 0.16.5-9.fc40, 0.16.5-9.fc41
rust-eza - addressed in versions 0.17.3-2.el9, 0.17.3-2.fc38, 0.17.3-2.fc39, 0.17.3-2.fc40, 0.17.3-2.fc41
rust-git2 - addressed in versions 0.18.2-1.el9, 0.18.2-1.fc38, 0.18.2-1.fc39, 0.18.2-1.fc40, 0.18.2-1.fc41
rust-bat - addressed in versions 0.24.0-2.el9, 0.24.0-3.fc38, 0.24.0-3.fc39, 0.24.0-3.fc40, 0.24.0-3.fc41
rust-asyncgit - addressed in versions 0.24.3-3.fc38, 0.24.3-3.fc39, 0.24.3-3.fc40, 0.24.3-3.fc41
rust-gitui - addressed in versions 0.24.3-4.fc38, 0.24.3-4.fc39, 0.24.3-4.fc40, 0.24.3-4.fc41
libgit2-28 (Ubuntu package) - update to 0.28.4+dfsg.1-2ubuntu0.1
rust-lsd - addressed in versions 1.0.0-3.fc38, 1.0.0-3.fc39, 1.0.0-3.fc40, 1.0.0-3.fc41
libgit2-1.1 (Ubuntu package) - update to 1.1.0+dfsg.1-4.1ubuntu0.1
libgit2 (Debian package) - addressed in versions 1.1.0+dfsg.1-4+deb11u2, 1.5.1+ds-1+deb12u1
libgit2-1.5 (Ubuntu package) - update to 1.5.1+ds-1ubuntu1.1
libgit2 - update to 1.6.4-115
libgit2_1.6 - addressed in versions 1.6.5-1.el9, 1.6.5-1.fc39
libgit2 - addressed in versions 1.6.5-1.fc38, 1.7.2-1.fc39, 1.7.2-2.el9
libgit2-devel - update to 1.7.2-1
libgit2 - update to 1.7.2-1
libgit2-devel - update to 1.7.2-150600.3.3.1
libgit2-tools - update to 1.7.2-150600.3.3.1
libgit2-1_7-debuginfo - update to 1.7.2-150600.3.3.1
libgit2-debuginfo - update to 1.7.2-150600.3.3.1
libgit2-debugsource - update to 1.7.2-150600.3.3.1
libgit2-tools-debuginfo - update to 1.7.2-150600.3.3.1
libgit2-1_7 - update to 1.7.2-150600.3.3.1
python-pygit2 - update to 1.14.0-2.el9
rust-help - addressed in versions 1.64.0-2, 1.64.0-3
rust-src - addressed in versions 1.64.0-2, 1.64.0-3
rust-lldb - addressed in versions 1.64.0-2, 1.64.0-3
rust-debugger-common - addressed in versions 1.64.0-2, 1.64.0-3
rust-gdb - addressed in versions 1.64.0-2, 1.64.0-3
rust-debugsource - addressed in versions 1.64.0-2, 1.64.0-3
rust-debuginfo - addressed in versions 1.64.0-2, 1.64.0-3
clippy - addressed in versions 1.64.0-2, 1.64.0-3
rls - addressed in versions 1.64.0-2, 1.64.0-3
rust-analyzer - addressed in versions 1.64.0-2, 1.64.0-3
cargo - addressed in versions 1.64.0-2, 1.64.0-3
rustfmt - addressed in versions 1.64.0-2, 1.64.0-3
rust-std-static - addressed in versions 1.64.0-2, 1.64.0-3
rust-analysis - addressed in versions 1.64.0-2, 1.64.0-3
rust - addressed in versions 1.64.0-2, 1.64.0-3
rust - update to 1.68.2-1
rust-silver - addressed in versions 2.0.1-7.fc38, 2.0.1-7.fc39, 2.0.1-7.fc40, 2.0.1-7.fc41
rust-vergen - addressed in versions 5.1.17-8.el9, 5.1.17-8.fc38, 5.1.17-8.fc39, 5.1.17-8.fc40, 5.1.17-8.fc41
rust-tokei - addressed in versions 12.1.2-8.fc38, 12.1.2-8.fc39, 12.1.2-8.fc40, 12.1.2-8.fc41

External References

Related Security Bulletins