Sceawere
Vulnerability Detail
CVE-2026-5917UPDATED Verified Sceawere Triage Sources: NVD / CISA KEV
libgit2 SSH Shell Command Injection
Vulnerability Metadata
- Severity
- Critical
- Score / CVSS
- 9.6
- Creation Date
- 4h ago
- Vendor
- libgit2
- Product
- libgit2
- Attack Type
- Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')
- Vector String
- CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H
- Attack Complexity
- LOW
Narrative and Response
Description
libgit2 versions v0.27.0 through v1.9.0 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.
Executive Summary
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Technical Details
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Mitigations
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
References
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Additional Metadata
{
"score": "9.6",
"pubDate": "2026-08-11T22:17:37.390Z",
"pubdate": "2026-08-11T22:17:37.390Z",
"executiveSummary": "A shell command injection vulnerability exists in libgit2 versions v0.27.0 through v1.9.0 when built using the libssh2 SSH backend with the USE_SSH=libssh2 configuration. This critical security flaw allows remote attackers to execute arbitrary system commands on an SSH server.\nThe vulnerability is triggered when a repository path containing unescaped shell metacharacters, such as single quotes, semicolons, or pipes, is processed during operations like a recursive clone involving malicious submodule URLs.\nSuccessful exploitation enables remote code execution under the security context of the victim's SSH user account on the target server. The primary risk implication is full compromise of the affected user session and potential lateral movement or data exfiltration depending on user privileges.\nExploitation requires the attacker to supply a crafted repository path or configure a malicious .gitmodules file within a repository that the victim subsequently interacts with via vulnerable libgit2 implementations.",
"technicalDetails": "The root cause of the vulnerability resides in the gen_proto() function located within ssh_libssh2.c. This function improperly handles input sanitization by directly inserting the user-supplied repository path into a constructed shell command string without escaping special characters.\nThe vulnerability affects libgit2 versions v0.27.0 through v1.9.0 compiled with USE_SSH=libssh2. The vulnerable component is the SSH transport implementation utilizing libssh2_channel_exec(), which passes the unescaped command string directly to the remote server's shell for execution.\nThe attack flow proceeds as follows: 1) An attacker crafts a malicious repository path or embeds a malicious submodule URL containing shell metacharacters such as single quotes, semicolons, or pipes within a .gitmodules file. 2) A victim initiates a vulnerable Git operation, such as a recursive clone, against a repository containing this malicious configuration. 3) libgit2 invokes gen_proto() to format the SSH command string for the remote connection, interpolating the malicious repository path without proper neutralization of shell metacharacters. 4) The resulting payload is transmitted via the libssh2 backend and executed via libssh2_channel_exec(). 5) The remote server's shell interprets the injected metacharacters, executing arbitrary commands specified by the attacker under the privileges of the victim's SSH user account.\nNo specific pre-existing authentication or elevated privilege requirements within the application are necessary beyond the ability to supply a malicious repository path or induce a victim to process a contaminated repository structure. The network exposure is inherent to remote SSH Git operations utilizing the affected library configurations."
}