Description
libgit2 versions before 1.8.7 and 1.9.0 before 1.9.7 built with the libssh2 SSH backend (USE_SSH=libssh2) contain a shell command injection vulnerability that allows remote attackers to execute arbitrary commands on an SSH server by supplying a repository path containing unescaped shell metacharacters such as single quotes, semicolons, or pipes. The gen_proto() function in ssh_libssh2.c inserts the repository path directly into a shell command string without escaping special characters before passing it to libssh2_channel_exec(), enabling an attacker to craft a malicious submodule URL in a .gitmodules file that, when processed during a recursive clone, causes the remote server's shell to interpret injected commands under the victim's SSH user account.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| libgit2 | libgit2 | < 1.8.7, 1.9.0 – < 1.9.7 | 1.8.7 |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | libgit2 | 1.9.7+ds-1 | — |
| Debian 13 | libgit2 | 1.9.0+ds-2+deb13u1 | — |
| Debian 12 | libgit2 | 1.5.1+ds-1+deb12u2 | — |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 26.04 LTS | libgit2 | 1.9.1+ds-1ubuntu1.2 | USN-8809-1 |
| Ubuntu 24.04 LTS | libgit2 | 1.7.2+ds-1ubuntu3.2 | USN-8809-1 |
Show 4 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu Pro 22.04 LTS | libgit2 | 1.1.0+dfsg.1-4.1ubuntu0.1+esm2 | USN-8809-1 |
| Ubuntu Pro 20.04 LTS | libgit2 | 0.28.4+dfsg.1-2ubuntu0.1+esm2 | USN-8809-1 |
| Ubuntu Pro 18.04 LTS | libgit2 | 0.26.0+dfsg.1-1.1ubuntu0.2+esm3 | USN-8809-1 |
| Ubuntu Pro 16.04 LTS | libgit2 | 0.24.1-2ubuntu0.2+esm4 | USN-8809-1 |
openSUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| openSUSE Tumbleweed | libgit2 | 1.9.7-1.1 | openSUSE-SU-2026:11521-1 |
Alpine
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Alpine v3.24 | libgit2 | 1.9.7-r0 | — |
| Alpine v3.23 | libgit2 | 1.9.7-r0 | — |
Amazon Linux
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Amazon Linux 2023 | cargo-c | 0.10.21-1.amzn2023.0.2 | ALAS2023-2026-2113 |
| Amazon Linux 2023 | libgit2 +1 | 1.6.4-116.amzn2023 | ALAS2023-2026-2083 |
Advisories 4
- USN-8809-1 libgit2 vulnerability Ubuntu Security Notices (USN) · Sep 24, 2026
- ALAS2023-2026-2083 Important: libgit2 security update (Amazon Linux 2023) Amazon Linux Security Center (ALAS) · Aug 31, 2026
- ALAS2023-2026-2113 Important: rust-cargo-c security update (Amazon Linux 2023) Amazon Linux Security Center (ALAS) · Aug 31, 2026
- openSUSE-SU-2026:11521-1 libgit2-1_9-1.9.7-1.1 on GA media SUSE / openSUSE Security Updates · Aug 16, 2026
References
- GitHub Security Advisory (GHSA-xqj4-2j5v-rr75) vendor-advisory patch
- https://www.vulncheck.com/advisories/libgit2-shell-command-injection-via-ssh-libssh2-backend third-party-advisory