CVE-2026-53586
libgit2: HTTP transport can leak credentials to an offsite redirect target
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.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- Required
What an attacker can affect
- Confidentiality
- High
- Integrity
- None
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
6.5
libgit2: HTTP transport can leak credentials to an offsite redirect target
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.
- Record
CVE-2026-53586- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N - Weakness
- CWE-200, CWE-522, CWE-601
- Updated
- 2026-11-02
EUVDEUVD-2026-63550
6.5
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.
- Record
EUVD-2026-63550- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N - Updated
- 2026-11-02
NVD
6.5
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.
- Record
CVE-2026-53586- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N - Weakness
- CWE-200, CWE-522, CWE-601
- Updated
- 2026-11-02
OSVALPINE-CVE-2026-53586
6.5
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.
- Record
ALPINE-CVE-2026-53586- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N - Updated
- 2026-11-03
OSVBELL-CVE-2026-53586
6.5
- Record
BELL-CVE-2026-53586- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N - Updated
- 2026-11-02
OSV
6.5
libgit2: HTTP transport can leak credentials to an offsite redirect target
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.
- Record
CVE-2026-53586- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N - Weakness
- CWE-200, CWE-522, CWE-601
- Updated
- 2026-11-02
Show 7 moreShow less
OSVDEBIAN-CVE-2026-53586
6.5
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.
- Record
DEBIAN-CVE-2026-53586- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N - Updated
- 2026-11-02
OSVJLSEC-2026-1372
6.5
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.
- Record
JLSEC-2026-1372- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N - Updated
- 2026-11-02
OSVRHSA-2026:59361
7.5
Red Hat Security Advisory: Red Hat Hardened Images RPMs bug fix and enhancement update
- Record
RHSA-2026:59361- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-53586
6.5
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.
- Record
UBUNTU-CVE-2026-53586- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N - Updated
- 2026-11-02
OSVAZL-96962 No score
CVE-2026-53586 affecting package libgit2 for versions less than 1.7.2-3
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.
- Record
AZL-96962- Updated
- 2026-11-05
OSVMGASA-2026-0570 No score
Updated libgit2 package fixes security vulnerabilities
Inverted IP SubjectAltName Comparison in OpenSSL Backend. (CVE-2026-53583) Submodule path traversal. (CVE-2026-53584) Unbounded Memory Allocation via Delta Object Result-Size Header. (CVE-2026-53585) HTTP transport can leak credentials to an offsite redirect target. (CVE-2026-53586) Unauthenticated network-reachable heap out-of-bounds read in transports/smart_pkt.c:set_data. (CVE-2026-53587) Shell Command Injection via ssh_libssh2 Backend. (CVE-2026-5917)
- Record
MGASA-2026-0570- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:11315-1 No score
libgit2-1_9-1.9.6-1.1 on GA media
These are all security issues fixed in the libgit2-1_9-1.9.6-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:11315-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
libgit2Alpine:v3.23 |
before 1.9.6-r0 | 1.9.6-r0 |
libgit2Alpine:v3.24 |
before 1.9.6-r0 | 1.9.6-r0 |
libgit2Azure Linux:3 |
before 1.7.2-3 | 1.7.2-3 |
libgit2Alpaquita:25 |
1.9.0-r2 up to 1.9.6-r0 | 1.9.6-r0 |
libgit2Alpaquita:stream |
1.7.1-r0 up to 1.9.6-r0 | 1.9.6-r0 |
libgit2Debian:12 |
before 1.5.1+ds-1+deb12u2, plus listed versions 1.5.1+ds-11.5.1+ds-1+deb12u1 |
1.5.1+ds-1+deb12u2 |
libgit2Debian:13 |
before 1.9.0+ds-2+deb13u1, plus listed versions 1.9.0+ds-2 |
1.9.0+ds-2+deb13u1 |
libgit2Debian:14 |
before 1.9.6+ds-1, plus listed versions 1.9.0+ds-21.9.1+ds-11.9.2+ds-11.9.2+ds-21.9.2+ds-3 Show 8 moreShow less1.9.2+ds-41.9.2+ds-51.9.2+ds-61.9.2+ds-71.9.2+ds-81.9.2+ds-91.9.3+ds-11.9.4+ds-1 |
1.9.6+ds-1 |
LibGit2_jllJulia |
before 1.9.6+0 | 1.9.6+0 |
libgit2Mageia:10 From an advisory covering 6 CVEs |
before 1.9.2-1.1.mga10 | 1.9.2-1.1.mga10 |
Show 7 moreShow less
| Package | Affected | Fixed |
|---|---|---|
libgit2Red Hat:hummingbird:1 From an advisory covering 5 CVEs |
before 0:1.9.7-1.hum1 | 0:1.9.7-1.hum1 |
libgit2-develRed Hat:hummingbird:1 From an advisory covering 5 CVEs |
before 0:1.9.7-1.hum1 | 0:1.9.7-1.hum1 |
libgit2Ubuntu:Pro:20.04:LTS |
before 0.28.4+dfsg.1-2ubuntu0.1+esm1, plus listed versions 0.27.7+dfsg.1-0.2build10.28.3+dfsg.1-10.28.3+dfsg.1-1ubuntu10.28.4+dfsg.1-20.28.4+dfsg.1-2ubuntu0.1 |
0.28.4+dfsg.1-2ubuntu0.1+esm1 |
libgit2Ubuntu:Pro:22.04:LTS |
before 1.1.0+dfsg.1-4.1ubuntu0.1+esm1, plus listed versions 1.1.0+dfsg.1-41.1.0+dfsg.1-4.11.1.0+dfsg.1-4.1build11.1.0+dfsg.1-4.1ubuntu0.1 |
1.1.0+dfsg.1-4.1ubuntu0.1+esm1 |
libgit2Ubuntu:24.04:LTS |
before 1.7.2+ds-1ubuntu3.1, plus listed versions 1.5.1+ds-1ubuntu11.7.1+ds-2ubuntu11.7.2+ds-1ubuntu11.7.2+ds-1ubuntu21.7.2+ds-1ubuntu3 |
1.7.2+ds-1ubuntu3.1 |
libgit2Ubuntu:26.04:LTS |
before 1.9.1+ds-1ubuntu1.1, plus listed versions 1.9.0+ds-2ubuntu21.9.1+ds-1ubuntu1 |
1.9.1+ds-1ubuntu1.1 |
libgit2openSUSE:Tumbleweed From an advisory covering 5 CVEs |
before 1.9.6-1.1 | 1.9.6-1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected | ||
| facts | OSV | |
| affected, aliases, references | OSV | |
| first indexed | CVE List, EUVD, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-53586 is a medium vulnerability (CVSS 6.5) in Libgit2, published July 20, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.28%, the 20th percentile. Fixed in libgit2 1.9.6-r0.
References
github.com/libgit2/libgit2/security/advisories/GHSA-2889-x8f6-mc4x
github.com/libgit2/libgit2/commit/07de6a7e438f95ac9a6efd3222a82117e871ed27
github.com/libgit2/libgit2/commit/af2b29ad0a74d5bac9751376879ddaf848136d3b
github.com/libgit2/libgit2/commit/c1507abc44647b3acd832a33a5b1c8c9f5ba8821
github.com/libgit2/libgit2/releases/tag/v1.8.6
github.com/libgit2/libgit2/releases/tag/v1.9.5
Show 56 moreShow less
security.alpinelinux.org/vuln/CVE-2026-53586
nvd.nist.gov/vuln/detail/CVE-2026-53586
docs.bell-sw.com/security/cves/CVE-2026-53586
github.com/CVEProject/cvelistV5/tree/main/cves/2026/53xxx/CVE-2026-53586.json
security-tracker.debian.org/tracker/CVE-2026-53586
advisories.mageia.org/MGASA-2026-0570.html
bugs.mageia.org/show_bug.cgi?id=35993
lists.opensuse.org/archives/list/[email protected]/message/VHH635RSSSNGD55XOG7MSUBAC6CK77E2
openwall.com/lists/oss-security/2026/08/20/4
ubuntu.com/security/notices/USN-8628-1
lists.debian.org/debian-security-announce/2026/msg00364.html
access.redhat.com/errata/RHSA-2026:59361
images.redhat.com
access.redhat.com/security/cve/CVE-2026-53587
access.redhat.com/security/updates/classification
access.redhat.com/security/cve/CVE-2026-53586
access.redhat.com/security/cve/CVE-2026-53584
access.redhat.com/security/cve/CVE-2026-53585
access.redhat.com/security/cve/CVE-2026-53583
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_59361.json
bugzilla.redhat.com/show_bug.cgi?id=2520694
cve.org/CVERecord?id=CVE-2026-53583
nvd.nist.gov/vuln/detail/CVE-2026-53583
github.com/libgit2/libgit2/commit/647dcb432980b84ede4cb5a008bbd1ccb4ead03d
github.com/libgit2/libgit2/commit/c2aa35409ee0e6515df64da49750f13a0a42c47f
github.com/libgit2/libgit2/commit/ef086bc3e4eedf62be38a910381aae24d49871ff
github.com/libgit2/libgit2/security/advisories/GHSA-h7gc-w2gg-p9xp
bugzilla.redhat.com/show_bug.cgi?id=2520695
cve.org/CVERecord?id=CVE-2026-53584
nvd.nist.gov/vuln/detail/CVE-2026-53584
github.com/libgit2/libgit2/commit/419637d3587396f5d139d6d88480eab3cd81e7a1
github.com/libgit2/libgit2/commit/467c2d95ed663df722f83a5960edf568514b128c
github.com/libgit2/libgit2/commit/ec7371da9f359cd8293e9108e7a0b1c1b61b67c4
github.com/libgit2/libgit2/security/advisories/GHSA-cw77-j82w-mchm
bugzilla.redhat.com/show_bug.cgi?id=2520696
cve.org/CVERecord?id=CVE-2026-53585
nvd.nist.gov/vuln/detail/CVE-2026-53585
github.com/libgit2/libgit2/commit/0cdfdd5fa8f8514c82413025e1e0808866cf7c30
github.com/libgit2/libgit2/commit/c1896f06df22cc0ca5658df3a8f6cd7ede4cd6ae
github.com/libgit2/libgit2/commit/dec22ac01ad9620c96b7b9ac3ef636ea46d43bed
github.com/libgit2/libgit2/security/advisories/GHSA-27m5-gxxh-x79j
bugzilla.redhat.com/show_bug.cgi?id=2520691
cve.org/CVERecord?id=CVE-2026-53586
bugzilla.redhat.com/show_bug.cgi?id=2520693
cve.org/CVERecord?id=CVE-2026-53587
nvd.nist.gov/vuln/detail/CVE-2026-53587
github.com/libgit2/libgit2/commit/2c0ce8c0132ac38ab0db28239462a671e2e5440e
github.com/libgit2/libgit2/commit/affda60c10fcef16723451c0d7dc71b71dc20ad3
github.com/libgit2/libgit2/commit/d7a9fb87f504434e9f45228678953c4fa56e7640
github.com/libgit2/libgit2/security/advisories/GHSA-pm24-4jhq-3xvm
ubuntu.com/security/CVE-2026-53586
suse.com/security/cve/CVE-2026-53583
suse.com/security/cve/CVE-2026-53584
suse.com/security/cve/CVE-2026-53585
suse.com/security/cve/CVE-2026-53586
suse.com/security/cve/CVE-2026-53587