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. Prior to 1.8.6 and 1.9.5, the built-in HTTP transport in src/libgit2/transports/http.c follows an offsite initial redirect, and handle_remote_auth and handle_auth pass transport->owner->url instead of transport->server.url to the credential callback when the redirected host returns 401 Unauthorized. A callback that scopes credentials to the original trusted URL can therefore return GIT_CREDENTIAL_USERPASS_PLAINTEXT credentials that libgit2 stores in transport->server.cred and sends as an Authorization header to the redirected host. An attacker who controls a trusted Git host or an open redirect on that host can disclose HTTP Basic credentials, personal access tokens, or equivalent credentials. This issue is fixed in versions 1.8.6 and 1.9.5.
{
"license": "CC-BY-4.0",
"sources": [
{
"database_specific": {
"status": "Received"
},
"id": "CVE-2026-53586",
"html_url": "https://nvd.nist.gov/vuln/detail/CVE-2026-53586",
"url": "https://services.nvd.nist.gov/rest/json/cves/2.0?cveId=CVE-2026-53586",
"published": "2026-08-20T19:16:54.983Z",
"modified": "2026-08-20T19:16:54.983Z",
"imported": "2026-08-21T20:45:35.145Z"
},
{
"id": "EUVD-2026-63550",
"html_url": "https://euvd.enisa.europa.eu/vulnerability/EUVD-2026-63550",
"url": "https://euvdservices.enisa.europa.eu/api/enisaid?id=EUVD-2026-63550",
"published": "2026-08-20T18:40:08Z",
"modified": "2026-08-20T18:40:08Z",
"affected": {
"libgit2:libgit2": [
"1.9.0, < 1.9.5",
"< 1.8.6"
]
},
"imported": "2026-08-21T20:45:01.753Z"
}
]
}